! function(e, t) {
	if ("object" == typeof exports && "object" == typeof module) {
		module.exports = t();
	} else {
		if ("function" == typeof define && define.amd) {
			define([], t);
		} else {
			if ("object" == typeof exports) {
				exports.AV = t();
			} else {
				e.AV = t();
			}
		}
	}
}(this, function() {
	return function(e) {
		function t(r) {
			if (n[r]) {
				return n[r].exports;
			}

			var i = n[r] = {
				i: r,
				l: false,
				exports: {}
			};
			e[r].call(i.exports, i, i.exports, t);
			i.l = true;
			return i.exports;
		}

		var n = {};
		t.m = e;
		t.c = n;

		t.i = function(e) {
			return e;
		};

		t.d = function(e, n, r) {
			t.o(e, n) || Object.defineProperty(e, n, {
				configurable: false,
				enumerable: true,
				get: r
			});
		};

		t.n = function(e) {
			var n = e && e.__esModule ? function() {
				return e.default;
			} : function() {
				return e;
			};
			t.d(n, "a", n);
			return n;
		};

		t.o = function(e, t) {
			return Object.prototype.hasOwnProperty.call(e, t);
		};

		t.p = "";
		return t(t.s = 62);
	}([function(e, t, n) {
		var r;
		var i;;
		(function() {
			function n(e) {
				function t(t, n, r, i, o, s) {
					for (; o >= 0 && o < s; o += e) {
						var a = i ? i[o] : o;
						r = n(r, t[a], a, t);
					}

					return r;
				}

				return function(n, r, i, o) {
					r = O(r, o, 4);
					var s = !x(n) && S.keys(n);
					var a = (s || n).length;
					var u = e > 0 ? 0 : a - 1;;

					if (arguments.length < 3) {
						i = n[s ? s[u] : u];
						u += e;;
					}

					return t(n, r, i, s, u, a);
				};
			}

			function o(e) {
				return function(t, n, r) {
					n = A(n, r);

					for (var i = C(t), o = e > 0 ? 0 : i - 1; o >= 0 && o < i; o += e) {
						if (n(t[o], o, t)) {
							return o;
						}
					}

					return -1;
				};
			}

			function s(e, t, n) {
				return function(r, i, o) {
					var s = 0;
					var a = C(r);;

					if ("number" == typeof o) {
						if (e > 0) {
							if (o >= 0) {
								s = o;
							} else {
								s = Math.max(o + a, s);
							}
						} else {
							if (o >= 0) {
								a = Math.min(o + 1, a);
							} else {
								a = o + a + 1;
							}
						}
					} else {
						if (n && o && a) {
							o = n(r, i);
							return r[o] === i ? o : -1;
						}
					}

					if (i !== i) {
						o = t(p.call(r, s, a), S.isNaN);
						return o >= 0 ? o + s : -1;
					}

					for (o = e > 0 ? s : a - 1; o >= 0 && o < a; o += e) {
						if (r[o] === i) {
							return o;
						}
					}

					return -1;
				};
			}

			function a(e, t) {
				var n = R.length;
				var r = e.constructor;
				var i = S.isFunction(r) && r.prototype || f;
				var o = "constructor";;

				for (S.has(e, o) && !S.contains(t, o) && t.push(o); n--;) {
					o = R[n];

					if (o in e && e[o] !== i[o] && !S.contains(t, o)) {
						t.push(o);
					}

					;
				}
			}

			var that = this;
			var c = that._;
			var l = Array.prototype;
			var f = Object.prototype;
			var h = Function.prototype;
			var d = l.push;
			var p = l.slice;
			var _ = f.toString;
			var v = f.hasOwnProperty;
			var y = Array.isArray;
			var m = Object.keys;
			var g = h.bind;
			var b = Object.create;

			var w = function() {};

			var S = function(e) {
				return e instanceof S ? e : this instanceof S ? void(this._wrapped = e) : new S(e);
			};

			;

			if ("undefined" != typeof e && e.exports) {
				t = e.exports = S;
			}

			t._ = S;
			S.VERSION = "1.8.3";;

			var O = function(e, t, n) {
				if (void 0 === t) {
					return e;
				}

				switch (null == n ? 3 : n) {
					case 1:
						return function(n) {
							return e.call(t, n);
						};

					case 2:
						return function(n, r) {
							return e.call(t, n, r);
						};

					case 3:
						return function(n, r, i) {
							return e.call(t, n, r, i);
						};

					case 4:
						return function(n, r, i, o) {
							return e.call(t, n, r, i, o);
						};
				}

				return function() {
					return e.apply(t, arguments);
				};
			};

			var A = function(e, t, n) {
				return null == e ? S.identity : S.isFunction(e) ? O(e, t, n) : S.isObject(e) ? S.matcher(e) : S.property(e);
			};

			;

			S.iteratee = function(e, t) {
				return A(e, t, 1 / 0);
			};

			var E = function(e, t) {
				return function(n) {
					var r = arguments.length;

					if (r < 2 || null == n) {
						return n;
					}

					for (var i = 1; i < r; i++) {
						for (var o = arguments[i], s = e(o), a = s.length, u = 0; u < a; u++) {
							var c = s[u];
							t && void 0 !== n[c] || (n[c] = o[c]);
						}
					}

					return n;
				};
			};

			var j = function(e) {
				if (!S.isObject(e)) {
					return {};
				}

				if (b) {
					return b(e);
				}

				w.prototype = e;
				var t = new w();
				return {};
			};

			var T = function(e) {
				return function(t) {
					return null == t ? void 0 : t[e];
				};
			};

			var N = Math.pow(2, 53) - 1;
			var C = T("length");

			var x = function(e) {
				var t = C(e);
				return "number" == typeof t && t >= 0 && t <= N;
			};

			;

			S.each = S.forEach = function(e, t, n) {
				t = O(t, n);
				var r;
				var i;;

				if (x(e)) {
					for (r = 0, i = e.length; r < i; r++) {
						t(e[r], r, e);
					}
				} else {
					var o = S.keys(e);

					for (r = 0, i = o.length; r < i; r++) {
						t(e[o[r]], o[r], e);
					}
				}

				return e;
			};

			S.map = S.collect = function(e, t, n) {
				t = A(t, n);

				for (var r = !x(e) && S.keys(e), i = (r || e).length, o = Array(i), s = 0; s < i; s++) {
					var a = r ? r[s] : s;
					o[s] = t(e[a], a, e);
				}

				return o;
			};

			S.reduce = S.foldl = S.inject = n(1);
			S.reduceRight = S.foldr = n(-1);

			S.find = S.detect = function(e, t, n) {
				var r;

				if (x(e)) {
					r = S.findIndex(e, t, n);
				} else {
					r = S.findKey(e, t, n);
				}

				if (void 0 !== r && r !== -1) {
					return e[r];
				}
			};

			S.filter = S.select = function(e, t, n) {
				var r = [];
				return {};
			};

			S.reject = function(e, t, n) {
				return S.filter(e, S.negate(A(t)), n);
			};

			S.every = S.all = function(e, t, n) {
				t = A(t, n);

				for (var r = !x(e) && S.keys(e), i = (r || e).length, o = 0; o < i; o++) {
					var s = r ? r[o] : o;

					if (!t(e[s], s, e)) {
						return false;
					}
				}

				return true;
			};

			S.some = S.any = function(e, t, n) {
				t = A(t, n);

				for (var r = !x(e) && S.keys(e), i = (r || e).length, o = 0; o < i; o++) {
					var s = r ? r[o] : o;

					if (t(e[s], s, e)) {
						return true;
					}
				}

				return false;
			};

			S.contains = S.includes = S.include = function(e, t, n, r) {
				x(e) || (e = S.values(e));

				if ("number" != typeof n || r) {
					n = 0;
				}

				return S.indexOf(e, t, n) >= 0;
			};

			S.invoke = function(e, t) {
				var n = p.call(arguments, 2);
				var r = S.isFunction(t);;
				return S.map(e, function(e) {
					var i = r ? t : e[t];
					return null == i ? i : i.apply(e, n);
				});
			};

			S.pluck = function(e, t) {
				return S.map(e, S.property(t));
			};

			S.where = function(e, t) {
				return S.filter(e, S.matcher(t));
			};

			S.findWhere = function(e, t) {
				return S.find(e, S.matcher(t));
			};

			S.max = function(e, t, n) {
				var r;
				var i;
				var o = -(1 / 0);
				var s = -(1 / 0);;

				if (null == t && null != e) {
					if (x(e)) {
						e = e;
					} else {
						e = S.values(e);
					}

					for (var a = 0, u = e.length; a < u; a++) {
						r = e[a];

						if (r > o) {
							o = r;
						}

						;
					}
				} else {
					t = A(t, n);
					S.each(e, function(e, n, r) {
						i = t(e, n, r);

						if (i > s || i === -(1 / 0) && o === -(1 / 0)) {
							o = e;
							s = i;;
						}

						;
					});;
				}

				return o;
			};

			S.min = function(e, t, n) {
				var r;
				var i;
				var o = 1 / 0;
				var s = 1 / 0;;

				if (null == t && null != e) {
					if (x(e)) {
						e = e;
					} else {
						e = S.values(e);
					}

					for (var a = 0, u = e.length; a < u; a++) {
						r = e[a];

						if (r < o) {
							o = r;
						}

						;
					}
				} else {
					t = A(t, n);
					S.each(e, function(e, n, r) {
						i = t(e, n, r);

						if (i < s || i === 1 / 0 && o === 1 / 0) {
							o = e;
							s = i;;
						}

						;
					});;
				}

				return o;
			};

			S.shuffle = function(e) {
				for (var t, n = x(e) ? e : S.values(e), r = n.length, i = Array(r), o = 0; o < r; o++) {
					t = S.random(0, o);

					if (t !== o) {
						i[o] = i[t];
					}

					i[t] = n[o];;
				}

				return i;
			};

			S.sample = function(e, t, n) {
				return null == t || n ? (x(e) || (e = S.values(e)), e[S.random(e.length - 1)]) : S.shuffle(e).slice(0, Math
					.max(0, t));
			};

			S.sortBy = function(e, t, n) {
				t = A(t, n);
				return S.pluck(S.map(e, function(e, n, r) {
					return {
						value: e,
						index: n,
						criteria: t(e, n, r)
					};
				}).sort(function(e, t) {
					var n = e.criteria;
					var r = t.criteria;;

					if (n !== r) {
						if (n > r || void 0 === n) {
							return 1;
						}

						if (n < r || void 0 === r) {
							return -1;
						}
					}

					return e.index - t.index;
				}), "value");
			};

			;

			var U = function(e) {
				return function(t, n, r) {
					var i = {};
					return {};
				};
			};

			S.groupBy = U(function(e, t, n) {
				if (S.has(e, n)) {
					e[n].push(t);
				} else {
					e[n] = [t];
				}
			});
			S.indexBy = U(function(e, t, n) {
				e[n] = t;
			});
			S.countBy = U(function(e, t, n) {
				if (S.has(e, n)) {
					e[n]++;
				} else {
					e[n] = 1;
				}
			});

			S.toArray = function(e) {
				return e ? S.isArray(e) ? p.call(e) : x(e) ? S.map(e, S.identity) : S.values(e) : [];
			};

			S.size = function(e) {
				return null == e ? 0 : x(e) ? e.length : S.keys(e).length;
			};

			S.partition = function(e, t, n) {
				t = A(t, n);
				var r = [];
				var i = [];;
				S.each(e, function(e, n, o) {
					(t(e, n, o) ? r : i).push(e);
				});
				return [r, i];
			};

			S.first = S.head = S.take = function(e, t, n) {
				if (null != e) {
					return null == t || n ? e[0] : S.initial(e, e.length - t);
				}
			};

			S.initial = function(e, t, n) {
				return p.call(e, 0, Math.max(0, e.length - (null == t || n ? 1 : t)));
			};

			S.last = function(e, t, n) {
				if (null != e) {
					return null == t || n ? e[e.length - 1] : S.rest(e, Math.max(0, e.length - t));
				}
			};

			S.rest = S.tail = S.drop = function(e, t, n) {
				return p.call(e, null == t || n ? 1 : t);
			};

			S.compact = function(e) {
				return S.filter(e, S.identity);
			};

			;

			var I = function(e, t, n, r) {
				for (var i = [], o = 0, s = r || 0, a = C(e); s < a; s++) {
					var u = e[s];

					if (x(u) && (S.isArray(u) || S.isArguments(u))) {
						t || (u = I(u, t, n));
						var c = 0;
						var l = u.length;;

						for (i.length += l; c < l;) {
							i[o++] = u[c++];
						}
					} else {
						n || (i[o++] = u);
					}
				}

				return i;
			};

			S.flatten = function(e, t) {
				return I(e, t, false);
			};

			S.without = function(e) {
				return S.difference(e, p.call(arguments, 1));
			};

			S.uniq = S.unique = function(e, t, n, r) {
				S.isBoolean(t) || (r = n, n = t, t = false);

				if (null != n) {
					n = A(n, r);
				}

				;

				for (var i = [], o = [], s = 0, a = C(e); s < a; s++) {
					var u = e[s];
					var c = n ? n(u, s, e) : u;;

					if (t) {
						s && o === c || i.push(u);
						o = c;;
					} else {
						if (n) {
							S.contains(o, c) || (o.push(c), i.push(u));
						} else {
							S.contains(i, u) || i.push(u);
						}
					}
				}

				return i;
			};

			S.union = function() {
				return S.uniq(I(arguments, true, true));
			};

			S.intersection = function(e) {
				for (var t = [], n = arguments.length, r = 0, i = C(e); r < i; r++) {
					var o = e[r];

					if (!S.contains(t, o)) {
						for (var s = 1; s < n && S.contains(arguments[s], o); s++) {
							;
						}

						if (s === n) {
							t.push(o);
						}
					}
				}

				return t;
			};

			S.difference = function(e) {
				var t = I(arguments, true, true, 1);
				return S.filter(e, function(e) {
					return !S.contains(t, e);
				});
			};

			S.zip = function() {
				return S.unzip(arguments);
			};

			S.unzip = function(e) {
				for (var t = e && S.max(e, C).length || 0, n = Array(t), r = 0; r < t; r++) {
					n[r] = S.pluck(e, r);
				}

				return n;
			};

			S.object = function(e, t) {
				for (var n = {}, r = 0, i = C(e); r < i; r++) {
					if (t) {
						n[e[r]] = t[r];
					} else {
						n[e[r][0]] = e[r][1];
					}
				}

				return n;
			};

			S.findIndex = o(1);
			S.findLastIndex = o(-1);

			S.sortedIndex = function(e, t, n, r) {
				n = A(n, r, 1);

				for (var i = n(t), o = 0, s = C(e); o < s;) {
					var a = Math.floor((o + s) / 2);

					if (n(e[a]) < i) {
						o = a + 1;
					} else {
						s = a;
					}
				}

				return o;
			};

			S.indexOf = s(1, S.findIndex, S.sortedIndex);
			S.lastIndexOf = s(-1, S.findLastIndex);

			S.range = function(e, t, n) {
				if (null == t) {
					t = e || 0;
					e = 0;;
				}

				n = n || 1;;

				for (var r = Math.max(Math.ceil((t - e) / n), 0), i = Array(r), o = 0; o < r; o++, e += n) {
					i[o] = e;
				}

				return i;
			};

			;

			var k = function(e, t, n, r, i) {
				if (!(r instanceof t)) {
					return e.apply(n, i);
				}

				var o = j(e.prototype);
				var s = e.apply(o, i);;
				return S.isObject(s) ? s : o;
			};

			S.bind = function(e, t) {
				if (g && e.bind === g) {
					return g.apply(e, p.call(arguments, 1));
				}

				if (!S.isFunction(e)) {
					throw new TypeError("Bind must be called on a function");
				}

				var n = p.call(arguments, 2);

				var r = function() {
					return k(e, r, t, this, n.concat(p.call(arguments)));
				};

				;
				return r;
			};

			S.partial = function(e) {
				var t = p.call(arguments, 1);

				var n = function() {
					for (var r = 0, i = t.length, o = Array(i), s = 0; s < i; s++) {
						if (t[s] === S) {
							o[s] = arguments[r++];
						} else {
							o[s] = t[s];
						}
					}

					for (; r < arguments.length;) {
						o.push(arguments[r++]);
					}

					return k(e, n, this, this, o);
				};

				;
				return n;
			};

			S.bindAll = function(e) {
				var t;
				var n;
				var r = arguments.length;;

				if (r <= 1) {
					throw new Error("bindAll must be passed function names");
				}

				for (t = 1; t < r; t++) {
					n = arguments[t];
					e[n] = S.bind(e[n], e);;
				}

				return e;
			};

			S.memoize = function(e, t) {
				var n = function(r) {
					var i = n.cache;
					var o = "" + (t ? t.apply(this, arguments) : r);;
					S.has(i, o) || (i[o] = e.apply(this, arguments));
					return i[o];
				};

				return {};
			};

			S.delay = function(e, t) {
				var n = p.call(arguments, 2);
				return setTimeout(function() {
					return e.apply(null, n);
				}, t);
			};

			S.defer = S.partial(S.delay, S, 1);

			S.throttle = function(e, t, n) {
				var r;
				var i;
				var o;
				var s = null;
				var a = 0;;
				n || (n = {});

				var u = function() {
					if (n.leading === false) {
						a = 0;
					} else {
						a = S.now();
					}

					s = null;
					o = e.apply(r, i);
					s || (r = i = null);;
				};

				return function() {
					var c = S.now();
					a || n.leading !== false || (a = c);
					var l = t - (c - a);
					return {};
				};
			};

			S.debounce = function(e, t, n) {
				var r;
				var i;
				var o;
				var s;
				var a;

				var u = function() {
					var c = S.now() - s;

					if (c < t && c >= 0) {
						r = setTimeout(u, t - c);
					} else {
						r = null;
						n || (a = e.apply(o, i), r || (o = i = null));;
					}
				};

				;
				return function() {
					o = this;
					i = arguments;
					s = S.now();;
					var c = n && !r;
					r || (r = setTimeout(u, t));

					if (c) {
						a = e.apply(o, i);
						o = i = null;;
					}

					return a;
				};
			};

			S.wrap = function(e, t) {
				return S.partial(t, e);
			};

			S.negate = function(e) {
				return function() {
					return !e.apply(this, arguments);
				};
			};

			S.compose = function() {
				var e = arguments;
				var t = e.length - 1;;
				return function() {
					for (var n = t, r = e[t].apply(this, arguments); n--;) {
						r = e[n].call(this, r);
					}

					return r;
				};
			};

			S.after = function(e, t) {
				return function() {
					if (--e < 1) {
						return t.apply(this, arguments);
					}
				};
			};

			S.before = function(e, t) {
				var n;
				return function() {
					if (--e > 0) {
						n = t.apply(this, arguments);
					}

					if (e <= 1) {
						t = null;
					}

					return n;
				};
			};

			S.once = S.partial(S.before, 2);;
			var P = !{
				toString: null
			}.propertyIsEnumerable("toString");
			var R = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"];;

			S.keys = function(e) {
				if (!S.isObject(e)) {
					return [];
				}

				if (m) {
					return m(e);
				}

				var t = [];

				for (var n in e) {
					if (S.has(e, n)) {
						t.push(n);
					}
				}

				if (P) {
					a(e, t);
				}

				return t;
			};

			S.allKeys = function(e) {
				if (!S.isObject(e)) {
					return [];
				}

				var t = [];

				for (var n in e) {
					t.push(n);
				}

				if (P) {
					a(e, t);
				}

				return t;
			};

			S.values = function(e) {
				for (var t = S.keys(e), n = t.length, r = Array(n), i = 0; i < n; i++) {
					r[i] = e[t[i]];
				}

				return r;
			};

			S.mapObject = function(e, t, n) {
				t = A(t, n);

				for (var r, i = S.keys(e), o = i.length, s = {}, a = 0; a < o; a++) {
					r = i[a];
					s[r] = t(e[r], r, e);;
				}

				return s;
			};

			S.pairs = function(e) {
				for (var t = S.keys(e), n = t.length, r = Array(n), i = 0; i < n; i++) {
					r[i] = [t[i], e[t[i]]];
				}

				return r;
			};

			S.invert = function(e) {
				for (var t = {}, n = S.keys(e), r = 0, i = n.length; r < i; r++) {
					t[e[n[r]]] = n[r];
				}

				return t;
			};

			S.functions = S.methods = function(e) {
				var t = [];

				for (var n in e) {
					if (S.isFunction(e[n])) {
						t.push(n);
					}
				}

				return t.sort();
			};

			S.extend = E(S.allKeys);
			S.extendOwn = S.assign = E(S.keys);

			S.findKey = function(e, t, n) {
				t = A(t, n);

				for (var r, i = S.keys(e), o = 0, s = i.length; o < s; o++) {
					r = i[o];

					if (t(e[r], r, e)) {
						return r;
					}
				}
			};

			S.pick = function(e, t, n) {
				var r;
				var i;
				var o = {};
				var s = e;;

				if (null == s) {
					return o;
				}

				if (S.isFunction(t)) {
					i = S.allKeys(s);
					r = O(t, n);;
				} else {
					i = I(arguments, false, false, 1);

					r = function(e, t, n) {
						return t in n;
					};

					s = Object(s);;
				}

				for (var a = 0, u = i.length; a < u; a++) {
					var c = i[a];
					var l = s[c];;

					if (r(l, c, s)) {
						o[c] = l;
					}
				}

				return o;
			};

			S.omit = function(e, t, n) {
				if (S.isFunction(t)) {
					t = S.negate(t);
				} else {
					var r = S.map(I(arguments, false, false, 1), String);

					t = function(e, t) {
						return !S.contains(r, t);
					};
				}

				return S.pick(e, t, n);
			};

			S.defaults = E(S.allKeys, true);

			S.create = function(e, t) {
				var n = j(e);

				if (t) {
					S.extendOwn(n, t);
				}

				return n;
			};

			S.clone = function(e) {
				return S.isObject(e) ? S.isArray(e) ? e.slice() : S.extend({}, e) : e;
			};

			S.tap = function(e, t) {
				t(e);
				return e;
			};

			S.isMatch = function(e, t) {
				var n = S.keys(t);
				var r = n.length;;

				if (null == e) {
					return !r;
				}

				for (var i = Object(e), o = 0; o < r; o++) {
					var s = n[o];

					if (t[s] !== i[s] || !(s in i)) {
						return false;
					}
				}

				return true;
			};

			;

			var D = function(e, t, n, r) {
				if (e === t) {
					return 0 !== e || 1 / e === 1 / t;
				}

				if (null == e || null == t) {
					return e === t;
				}

				if (e instanceof S) {
					e = e._wrapped;
				}

				if (t instanceof S) {
					t = t._wrapped;
				}

				;

				var i = _.call(e);

				if (i !== _.call(t)) {
					return false;
				}

				switch (i) {
					case "[object RegExp]":
					case "[object String]":
						return "" + e == "" + t;

					case "[object Number]":
						return +e !== +e ? +t !== +t : 0 === +e ? 1 / +e === 1 / t : +e === +t;

					case "[object Date]":
					case "[object Boolean]":
						return +e === +t;
				}

				var o = "[object Array]" === i;

				if (!o) {
					if ("object" != typeof e || "object" != typeof t) {
						return false;
					}

					var s = e.constructor;
					var a = t.constructor;;

					if (s !== a && !(S.isFunction(s) && s instanceof s && S.isFunction(a) && a instanceof a) && "constructor" in
						e && "constructor" in t) {
						return false;
					}
				}

				n = n || [];
				r = r || [];;

				for (var u = n.length; u--;) {
					if (n[u] === e) {
						return r[u] === t;
					}
				}

				n.push(e);
				r.push(t);

				if (o) {
					u = e.length;

					if (u !== t.length) {
						return false;
					}

					for (; u--;) {
						if (!D(e[u], t[u], n, r)) {
							return false;
						}
					}
				} else {
					var c;
					var l = S.keys(e);;
					u = l.length;

					if (S.keys(t).length !== u) {
						return false;
					}

					for (; u--;) {
						c = l[u];

						if (!S.has(t, c) || !D(e[c], t[c], n, r)) {
							return false;
						}
					}
				}

				n.pop();
				r.pop();
				return true;
			};

			S.isEqual = function(e, t) {
				return D(e, t);
			};

			S.isEmpty = function(e) {
				return null == e || (x(e) && (S.isArray(e) || S.isString(e) || S.isArguments(e)) ? 0 === e.length : 0 === S
					.keys(e).length);
			};

			S.isElement = function(e) {
				return !(!e || 1 !== e.nodeType);
			};

			S.isArray = y || function(e) {
				return "[object Array]" === _.call(e);
			};

			S.isObject = function(e) {
				var t = typeof e;
				return "function" === t || "object" === t && !!e;
			};

			S.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(e) {
				S["is" + e] = function(t) {
					return _.call(t) === "[object " + e + "]";
				};
			});
			S.isArguments(arguments) || (S.isArguments = function(e) {
				return S.has(e, "callee");
			});

			if ("function" != typeof /./ && "object" != typeof Int8Array) {
				S.isFunction = function(e) {
					return "function" == typeof e || false;
				};
			}

			S.isFinite = function(e) {
				return isFinite(e) && !isNaN(parseFloat(e));
			};

			S.isNaN = function(e) {
				return S.isNumber(e) && e !== +e;
			};

			S.isBoolean = function(e) {
				return e === true || e === false || "[object Boolean]" === _.call(e);
			};

			S.isNull = function(e) {
				return null === e;
			};

			S.isUndefined = function(e) {
				return void 0 === e;
			};

			S.has = function(e, t) {
				return null != e && v.call(e, t);
			};

			S.noConflict = function() {
				that._ = c;
				return this;
			};

			S.identity = function(e) {
				return e;
			};

			S.constant = function(e) {
				return function() {
					return e;
				};
			};

			S.noop = function() {};

			S.property = T;

			S.propertyOf = function(e) {
				return null == e ? function() {} : function(t) {
					return e[t];
				};
			};

			S.matcher = S.matches = function(e) {
				e = S.extendOwn({}, e);
				return function(t) {
					return S.isMatch(t, e);
				};
			};

			S.times = function(e, t, n) {
				var r = Array(Math.max(0, e));
				t = O(t, n, 1);

				for (var i = 0; i < e; i++) {
					r[i] = t(i);
				}

				return r;
			};

			S.random = function(e, t) {
				if (null == t) {
					t = e;
					e = 0;;
				}

				return e + Math.floor(Math.random() * (t - e + 1));
			};

			S.now = Date.now || function() {
				return new Date().getTime();
			};

			;
			var L = {
				"&": "&amp;",
				"<": "&lt;",
				">": "&gt;",
				'"': "&quot;",
				"'": "&#x27;",
				"`": "&#x60;"
			};
			var q = S.invert(L);

			var M = function(e) {
				var t = function(t) {
					return e[t];
				};

				var n = "(?:" + S.keys(e).join("|") + ")";
				var r = RegExp(n);
				var i = RegExp(n, "g");;
				return function(e) {
					if (null == e) {
						e = "";
					} else {
						e = "" + e;
					}

					return r.test(e) ? e.replace(i, t) : e;
				};
			};

			;
			S.escape = M(L);
			S.unescape = M(q);

			S.result = function(e, t, n) {
				var r = null == e ? void 0 : e[t];

				if (void 0 === r) {
					r = n;
				}

				return S.isFunction(r) ? r.call(e) : r;
			};

			;
			var F = 0;

			S.uniqueId = function(e) {
				var t = ++F + "";
				return e ? e + t : t;
			};

			S.templateSettings = {
				evaluate: /<%([\s\S]+?)%>/g,
				interpolate: /<%=([\s\S]+?)%>/g,
				escape: /<%-([\s\S]+?)%>/g
			};;
			var B = /(.)^/;
			var J = {
				"'": "'",
				"\\": "\\",
				"\r": "r",
				"\n": "n",
				"\u2028": "u2028",
				"\u2029": "u2029"
			};
			var W = /\\|'|\r|\n|\u2028|\u2029/g;

			var V = function(e) {
				return "\\" + J[e];
			};

			;

			S.template = function(e, t, n) {
				if (!t && n) {
					t = n;
				}

				t = S.defaults({}, t, S.templateSettings);;
				var r = RegExp([(t.escape || B).source, (t.interpolate || B).source, (t.evaluate || B).source].join("|") +
					"|$", "g");
				var i = 0;
				var o = "__p+='";;
				e.replace(r, function(t, n, r, s, a) {
					return {};
				});
				o += "';\n";
				t.variable || (o = "with(obj||{}){\n" + o + "}\n");
				o = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + o +
					"return __p;\n";;

				try {
					var s = new Function(t.variable || "obj", "_", o);
				} catch (e) {
					throw {};
				}

				var a = function(e) {
					return s.call(this, e, S);
				};

				var u = t.variable || "obj";;
				return {};
			};

			S.chain = function(e) {
				var t = S(e);
				return {};
			};

			;

			var Q = function(e, t) {
				return e._chain ? S(t).chain() : t;
			};

			S.mixin = function(e) {
				S.each(S.functions(e), function(t) {
					var n = S[t] = e[t];

					S.prototype[t] = function() {
						var e = [this._wrapped];
						d.apply(e, arguments);
						return Q(this, n.apply(S, e));
					};
				});
			};

			S.mixin(S);
			S.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(e) {
				var t = l[e];

				S.prototype[e] = function() {
					var n = this._wrapped;
					t.apply(n, arguments);
					"shift" !== e && "splice" !== e || 0 !== n.length || delete n[0];
					return Q(this, n);
				};
			});
			S.each(["concat", "join", "slice"], function(e) {
				var t = l[e];

				S.prototype[e] = function() {
					return Q(this, t.apply(this._wrapped, arguments));
				};
			});

			S.prototype.value = function() {
				return this._wrapped;
			};

			S.prototype.valueOf = S.prototype.toJSON = S.prototype.value;

			S.prototype.toString = function() {
				return "" + this._wrapped;
			};

			r = [];

			i = function() {
				return S;
			}.apply(t, r);

			!(void 0 !== i && (e.exports = i));;
		}).call(this);
	}, function(e, t, n) {
		"use strict";

		var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
			return typeof e;
		} : function(e) {
			return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" :
				typeof e;
		};
		var i = n(6);
		var o = n(9)("leancloud:request");
		var s = n(55);
		var a = n(2);
		var u = n(16);
		var c = n(3);
		var l = n(4);
		var f = n(0);
		var h = n(5);
		var d = h.getSessionToken;
		var p = void 0;
		var _ = {
			cn: "https://api.leancloud.cn",
			us: "https://us-api.leancloud.cn"
		};

		var v = function(e, t) {
			var n = new Date().getTime();
			var r = s(n + e);;
			return t ? r + "," + n + ",master" : r + "," + n;
		};

		var y = function(e) {
			var t = ["batch", "classes", "files", "date", "functions", "call", "login", "push", "search/select",
				"requestPasswordReset", "requestEmailVerify", "requestPasswordResetBySmsCode", "resetPasswordBySmsCode",
				"requestMobilePhoneVerify", "requestLoginSmsCode", "verifyMobilePhone", "requestSmsCode", "verifySmsCode",
				"users", "usersByMobilePhone", "cloudQuery", "qiniu", "fileTokens", "statuses", "bigquery", "search/select",
				"subscribe/statuses/count", "subscribe/statuses", "installations"
			];

			if (t.indexOf(e) === -1 && !/users\/[^\/]+\/updatePassword/.test(e) && !/users\/[^\/]+\/friendship\/[^\/]+/
				.test(e)) {
				throw new Error("Bad router: " + e + ".");
			}
		};

		var m = 0;

		var g = function(e, t, n) {
			var r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};
			var s = arguments[4];
			var u = m++;;
			o("request(" + u + ")", e, t, n, r);
			return new a(function(a, c) {
				var l = i(e, t).set(r).send(n);

				if (s) {
					l.on("progress", s);
				}

				l.end(function(e, t) {
					if (t) {
						o("response(" + u + ")", t.status, t.body || t.text, t.header);
					}

					return e ? (t && (e.statusCode = t.status, e.responseText = t.text, e.response = t.body), c(e)) : a(t
						.body);
				});;
			});
		};

		var b = function(e, t) {
			if (t) {
				e["X-LC-Sign"] = v(l.applicationKey);
			} else {
				e["X-LC-Key"] = l.applicationKey;
			}
		};

		var w = function() {
			var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
			var t = arguments[1];
			var n = {
				"X-LC-Id": l.applicationId,
				"Content-Type": "application/json;charset=UTF-8"
			};
			var r = false;;

			if ("boolean" == typeof e.useMasterKey) {
				r = e.useMasterKey;
			} else {
				if ("boolean" == typeof l._useMasterKey) {
					r = l._useMasterKey;
				}
			}

			if (r) {
				if (l.masterKey) {
					if (t) {
						n["X-LC-Sign"] = v(l.masterKey, true);
					} else {
						n["X-LC-Key"] = l.masterKey + ",master";
					}
				} else {
					console.warn("masterKey is not set, fall back to use appKey");
					b(n, t);;
				}
			} else {
				b(n, t);
			}

			if (l.hookKey) {
				n["X-LC-Hook-Key"] = l.hookKey;
			}

			if (null !== l._config.applicationProduction) {
				n["X-LC-Prod"] = String(l._config.applicationProduction);
			}

			n["X-LC-UA"] = l._config.userAgent;
			return a.resolve().then(function() {
				var t = d(e);

				if (t) {
					n["X-LC-Session"] = t;
				} else {
					if (!l._config.disableCurrentUser) {
						return l.User.currentAsync().then(function(e) {
							if (e && e._sessionToken) {
								n["X-LC-Session"] = e._sessionToken;
							}

							return n;
						});
					}
				}

				return n;
			});
		};

		var S = function(e, t, n, i, o) {
			if (l.serverURL) {
				l._config.APIServerURL = l.serverURL;
				console.warn("Please use AV._config.APIServerURL to replace AV.serverURL, and it is an internal interface.");;
			}

			var s = l._config.APIServerURL || _.cn;

			if ("/" !== s.charAt(s.length - 1)) {
				s += "/";
			}

			s += "1.1/" + e;

			if (t) {
				s += "/" + t;
			}

			if (n) {
				s += "/" + n;
			}

			"users" !== e && "classes" !== e || !o || (s += "?", o._fetchWhenSave && (delete o._fetchWhenSave, s +=
				"&new=true"), o._where && (s += "&where=" + encodeURIComponent(JSON.stringify(o._where)), delete o._where));

			if ("get" === i.toLowerCase()) {
				if (s.indexOf("?") === -1) {
					s += "?";
				}

				for (var a in o) {
					if ("object" === r(o[a])) {
						o[a] = JSON.stringify(o[a]);
					}

					s += "&" + a + "=" + encodeURIComponent(o[a]);;
				}
			}

			return s;
		};

		var O = function(e, t) {
			if ("number" != typeof t) {
				t = 3600;
			}

			return u.setAsync("APIServerURL", e, 1000 * t);
		};

		var A = function(e) {
			return new a(function(t, n) {
				if (410 === e.statusCode) {
					O(e.response.api_server, e.response.ttl).then(function() {
						t(e.response.location);
					}).catch(n);
				} else {
					var r = {
						code: e.code || -1,
						error: e.message || e.responseText
					};

					if (e.response && e.response.code) {
						r = e.response;
					} else {
						if (e.responseText) {
							try {
								r = JSON.parse(e.responseText);
							} catch (e) {}
						}
					}

					n(new c(r.code, r.error));
				}
			});
		};

		var E = function(e) {
			l._config.APIServerURL = "https://" + e;
			var t = f.findKey(_, function(e) {
				return e === l._config.APIServerURL;
			});

			if (t) {
				l._config.region = t;
			}
		};

		var j = function() {
			var e = "https://app-router.leancloud.cn/1/route?appId=" + l.applicationId;
			return g("get", e).then(function(e) {
				if (e.api_server) {
					E(e.api_server);
					return O(e.api_server, e.ttl);
				}
			}, function(e) {
				if (e.statusCode >= 400 && e.statusCode < 500) {
					throw e;
				}
			});
		};

		var T = function() {
			var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "cn";
			// p = new a(function(t, n) {
			// 	return l._config.APIServerURL ? void t() : "cn" === e ? u.getAsync("APIServerURL").then(function(e) {
			// 		return e ? void E(e) : j();
			// 	}).then(function() {
			// 		t();
			// 	}).catch(function(e) {
			// 		n(e);
			// 	}) : (l._config.region = e, l._config.APIServerURL = _[e], t(), void 0);
			// });
		};

		var N = function e(t, n, r, i) {
			var o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : {};
			var s = arguments[5];;

			if (!l.applicationId) {
				throw new Error("You must specify your applicationId using AV.init()");
			}

			if (!l.applicationKey && !l.masterKey) {
				throw new Error("You must specify a AppKey using AV.init()");
			}

			y(t);
			return p ? p.then(function() {
				var a = S(t, n, r, i, o);

				if (a.length > 2000 && "get" === i.toLowerCase()) {
					var u = {
						request: {
							method: i,
							path: a
						}
					};
					return e("batch", null, null, "POST", u, s);
				}

				return w(s).then(function(e) {
					return g(i, a, o, e).then(null, function(t) {
						return A(t).then(function(t) {
							return g(i, t, o, e);
						});
					});
				});
			}) : a.reject(new Error("Not initialized"));
		};

		;
		e.exports = {
			ajax: g,
			request: N,
			setServerUrlByRegion: T
		};
	}, function(e, t, n) {
		"use strict";

		var r = (n(0), n(50).Promise);

		// r._continueWhile = function(e, t) {
		// 	return e() ? t().then(function() {
		// 		return r._continueWhile(e, t);
		// 	}) : r.resolve();
		// };

		e.exports = r;;
	}, function(e, t, n) {
		"use strict";

		function r(e, t) {
			var n = new Error(t);
			return {};
		}

		var i = n(0);
		i.extend(r, {
			OTHER_CAUSE: -1,
			INTERNAL_SERVER_ERROR: 1,
			CONNECTION_FAILED: 100,
			OBJECT_NOT_FOUND: 101,
			INVALID_QUERY: 102,
			INVALID_CLASS_NAME: 103,
			MISSING_OBJECT_ID: 104,
			INVALID_KEY_NAME: 105,
			INVALID_POINTER: 106,
			INVALID_JSON: 107,
			COMMAND_UNAVAILABLE: 108,
			NOT_INITIALIZED: 109,
			INCORRECT_TYPE: 111,
			INVALID_CHANNEL_NAME: 112,
			PUSH_MISCONFIGURED: 115,
			OBJECT_TOO_LARGE: 116,
			OPERATION_FORBIDDEN: 119,
			CACHE_MISS: 120,
			INVALID_NESTED_KEY: 121,
			INVALID_FILE_NAME: 122,
			INVALID_ACL: 123,
			TIMEOUT: 124,
			INVALID_EMAIL_ADDRESS: 125,
			MISSING_CONTENT_TYPE: 126,
			MISSING_CONTENT_LENGTH: 127,
			INVALID_CONTENT_LENGTH: 128,
			FILE_TOO_LARGE: 129,
			FILE_SAVE_ERROR: 130,
			FILE_DELETE_ERROR: 153,
			DUPLICATE_VALUE: 137,
			INVALID_ROLE_NAME: 139,
			EXCEEDED_QUOTA: 140,
			SCRIPT_FAILED: 141,
			VALIDATION_ERROR: 142,
			INVALID_IMAGE_DATA: 150,
			UNSAVED_FILE_ERROR: 151,
			INVALID_PUSH_TIME_ERROR: 152,
			USERNAME_MISSING: 200,
			PASSWORD_MISSING: 201,
			USERNAME_TAKEN: 202,
			EMAIL_TAKEN: 203,
			EMAIL_MISSING: 204,
			EMAIL_NOT_FOUND: 205,
			SESSION_MISSING: 206,
			MUST_CREATE_USER_THROUGH_SIGNUP: 207,
			ACCOUNT_ALREADY_LINKED: 208,
			LINKED_ID_MISSING: 250,
			INVALID_LINKED_SESSION: 251,
			UNSUPPORTED_SERVICE: 252,
			X_DOMAIN_REQUEST: 602
		});
		e.exports = r;;
	}, function(e, t, n) {
		"use strict";

		(function(t) {
			var r = n(0);
			var i = n(40);
			var o = n(5);
			var s = o.isNullOrUndefined;
			var a = t.AV || {};;
			a._config = a._config || {};
			var u = a._config;
			r.extend(u, {
				region: "cn",
				APIServerURL: u.APIServerURL || "",
				disableCurrentUser: false,
				userAgent: i,
				applicationProduction: null
			});

			var c = function() {};

			var l = function(e, t, n) {
				var i;
				return {};
			};

			;

			a.setProduction = function(e) {
				if (s(e)) {
					u.applicationProduction = null;
				} else {
					if (e) {
						u.applicationProduction = 1;
					} else {
						u.applicationProduction = 0;
					}
				}
			};

			a._getAVPath = function(e) {
				if (!a.applicationId) {
					throw new Error("You need to call AV.initialize before using AV.");
				}

				e || (e = "");

				if (!r.isString(e)) {
					throw new Error("Tried to get a localStorage path that wasn't a String.");
				}

				if ("/" === e[0]) {
					e = e.substring(1);
				}

				return "AV/" + a.applicationId + "/" + e;
			};

			a._installationId = null;

			a._getInstallationId = function() {
				if (a._installationId) {
					return a.Promise.resolve(a._installationId);
				}

				var e = a._getAVPath("installationId");

				return a.localStorage.getItemAsync(e).then(function(t) {
					a._installationId = t;

					if (a._installationId) {
						return t;
					}

					var n = function() {
						return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1);
					};

					a._installationId = n() + n() + "-" + n() + "-" + n() + "-" + n() + "-" + n() + n() + n();
					return a.localStorage.setItemAsync(e, a._installationId);
				});
			};

			a._parseDate = function(e) {
				var t = new RegExp(
					"^([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2})T([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})(.([0-9]+))?Z$");
				var n = t.exec(e);;

				if (!n) {
					return null;
				}

				var r = n[1] || 0;
				var i = (n[2] || 1) - 1;
				var o = n[3] || 0;
				var s = n[4] || 0;
				var a = n[5] || 0;
				var u = n[6] || 0;
				var c = n[8] || 0;;
				return new Date(Date.UTC(r, i, o, s, a, u, c));
			};

			a._extend = function(e, t) {
				var n = l(this, e, t);
				return {};
			};

			a._getValue = function(e, t) {
				return e && e[t] ? r.isFunction(e[t]) ? e[t]() : e[t] : null;
			};

			a._encode = function(e, t, n) {
				if (e instanceof a.Object) {
					if (n) {
						throw new Error("AV.Objects not allowed here");
					}

					if (!t || r.include(t, e) || !e._hasData) {
						return e._toPointer();
					}

					if (!e.dirty()) {
						t = t.concat(e);
						return a._encode(e._toFullJSON(t), t, n);
					}

					throw new Error("Tried to save an object with a pointer to a new, unsaved object.");
				}

				if (e instanceof a.ACL) {
					return e.toJSON();
				}

				if (r.isDate(e)) {
					return {
						__type: "Date",
						iso: e.toJSON()
					};
				}

				if (e instanceof a.GeoPoint) {
					return e.toJSON();
				}

				if (r.isArray(e)) {
					return r.map(e, function(e) {
						return a._encode(e, t, n);
					});
				}

				if (r.isRegExp(e)) {
					return e.source;
				}

				if (e instanceof a.Relation) {
					return e.toJSON();
				}

				if (e instanceof a.Op) {
					return e.toJSON();
				}

				if (e instanceof a.File) {
					if (!e.url() && !e.id) {
						throw new Error("Tried to save an object containing an unsaved file.");
					}

					return {
						__type: "File",
						id: e.id,
						name: e.name(),
						url: e.url()
					};
				}

				return r.isObject(e) ? r.mapObject(e, function(e, r) {
					return a._encode(e, t, n);
				}) : e;
			};

			a._decode = function(e, t) {
				if (!r.isObject(e) || r.isDate(e)) {
					return e;
				}

				if (r.isArray(e)) {
					return r.map(e, function(e) {
						return a._decode(e);
					});
				}

				if (e instanceof a.Object) {
					return e;
				}

				if (e instanceof a.File) {
					return e;
				}

				if (e instanceof a.Op) {
					return e;
				}

				if (e instanceof a.GeoPoint) {
					return e;
				}

				if (e instanceof a.ACL) {
					return e;
				}

				if (e.__op) {
					return a.Op._decode(e);
				}

				var n;

				if ("Pointer" === e.__type) {
					n = e.className;

					var i = a.Object._create(n);

					if (Object.keys(e).length > 3) {
						var o = r.clone(e);
						delete o.__type;
						delete o.className;

						i._finishFetch(o, true);

						;
					} else {
						i._finishFetch({
							objectId: e.objectId
						}, false);
					}

					return i;
				}

				if ("Object" === e.__type) {
					n = e.className;
					var s = r.clone(e);
					delete s.__type;
					delete s.className;;

					var u = a.Object._create(n);

					u._finishFetch(s, true);

					return u;
				}

				if ("Date" === e.__type) {
					return a._parseDate(e.iso);
				}

				if ("GeoPoint" === e.__type) {
					return new a.GeoPoint({
						latitude: e.latitude,
						longitude: e.longitude
					});
				}

				if ("Relation" === e.__type) {
					if (!t) {
						throw new Error("key missing decoding a Relation");
					}

					var c = new a.Relation(null, t);
					return {};
				}

				if ("File" === e.__type) {
					var l = new a.File(e.name);
					var f = r.clone(e);;
					delete f.__type;

					l._finishFetch(f);

					return l;
				}

				return r.mapObject(e, function(e, t) {
					return "ACL" === t ? new a.ACL(e) : a._decode(e, t);
				});
			};

			a._encodeObjectOrArray = function(e) {
				var t = function(e) {
					if (e && e._toFullJSON) {
						e = e._toFullJSON([]);
					}

					return r.mapObject(e, function(e) {
						return a._encode(e, []);
					});
				};

				return r.isArray(e) ? e.map(function(e) {
					return t(e);
				}) : t(e);
			};

			a._arrayEach = r.each;

			a._traverse = function(e, t, n) {
				if (e instanceof a.Object) {
					n = n || [];

					if (r.indexOf(n, e) >= 0) {
						return;
					}

					n.push(e);

					a._traverse(e.attributes, t, n);

					return t(e);
				}

				return e instanceof a.Relation || e instanceof a.File ? t(e) : r.isArray(e) ? (r.each(e, function(r, i) {
					var o = a._traverse(r, t, n);

					if (o) {
						e[i] = o;
					}
				}), t(e)) : r.isObject(e) ? (a._each(e, function(r, i) {
					var o = a._traverse(r, t, n);

					if (o) {
						e[i] = o;
					}
				}), t(e)) : t(e);
			};

			a._objectEach = a._each = function(e, t) {
				if (r.isObject(e)) {
					r.each(r.keys(e), function(n) {
						t(e[n], n);
					});
				} else {
					r.each(e, t);
				}
			};

			e.exports = a;;
		}).call(t, n(7));
	}, function(e, t, n) {
		"use strict";

		var r = n(0);

		var i = function(e) {
			return r.isNull(e) || r.isUndefined(e);
		};

		var o = function(e) {
			return r.isArray(e) ? e : void 0 === e || null === e ? [] : [e];
		};

		var s = function(e) {
			return e.sessionToken ? e.sessionToken : e.user && "function" == typeof e.user.getSessionToken ? e.user
				.getSessionToken() : void 0;
		};

		;
		e.exports = {
			isNullOrUndefined: i,
			ensureArray: o,
			getSessionToken: s
		};
	}, function(e, t, n) {
		function r() {}

		function i(e) {
			if (!_(e)) {
				return e;
			}

			var t = [];

			for (var n in e) {
				o(t, n, e[n]);
			}

			return t.join("&");
		}

		function o(e, t, n) {
			if (null != n) {
				if (Array.isArray(n)) {
					n.forEach(function(n) {
						o(e, t, n);
					});
				} else {
					if (_(n)) {
						for (var r in n) {
							o(e, t + "[" + r + "]", n[r]);
						}
					} else {
						e.push(encodeURIComponent(t) + "=" + encodeURIComponent(n));
					}
				}
			} else {
				if (null === n) {
					e.push(encodeURIComponent(t));
				}
			}
		}

		function s(e) {
			for (var t, n, r = {}, i = e.split("&"), o = 0, s = i.length; o < s; ++o) {
				t = i[o];
				n = t.indexOf("=");

				if (n == -1) {
					r[decodeURIComponent(t)] = "";
				} else {
					r[decodeURIComponent(t.slice(0, n))] = decodeURIComponent(t.slice(n + 1));
				}

				;
			}

			return r;
		}

		function a(e) {
			var t;
			var n;
			var r;
			var i;
			var o = e.split(/\r?\n/);
			var s = {};;
			o.pop();

			for (var a = 0, u = o.length; a < u; ++a) {
				n = o[a];
				t = n.indexOf(":");
				r = n.slice(0, t).toLowerCase();
				i = g(n.slice(t + 1));
				s[r] = i;;
			}

			return s;
		}

		function u(e) {
			return /[\/+]json\b/.test(e);
		}

		function c(e, t) {
			t = t || {};
			this.req = e;
			this.xhr = this.req.xhr;

			if ("HEAD" != this.req.method && ("" === this.xhr.responseType || "text" === this.xhr.responseType) ||
				"undefined" == typeof this.xhr.responseType) {
				this.text = this.xhr.responseText;
			} else {
				this.text = null;
			}

			this.statusText = this.req.xhr.statusText;;
			var n = this.xhr.status;

			if (1223 === n) {
				n = 204;
			}

			this._setStatusProperties(n);

			this.header = this.headers = a(this.xhr.getAllResponseHeaders());
			this.header["content-type"] = this.xhr.getResponseHeader("content-type");

			this._setHeaderProperties(this.header);

			if (null === this.text && e._responseType) {
				this.body = this.xhr.response;
			} else {
				if ("HEAD" != this.req.method) {
					this.body = this._parseBody(this.text ? this.text : this.xhr.response);
				} else {
					this.body = null;
				}
			}

			;
		}

		function l(e, t) {
			var that = this;
			this._query = this._query || [];
			this.method = e;
			this.url = t;
			this.header = {};
			this._header = {};
			this.on("end", function() {
				var e = null;
				var t = null;;

				try {
					t = new c(that);
				} catch (t) {
					e = new Error("Parser is unable to parse the response");
					e.parse = true;
					e.original = t;

					if (that.xhr) {
						if ("undefined" == typeof that.xhr.responseType) {
							e.rawResponse = that.xhr.responseText;
						} else {
							e.rawResponse = that.xhr.response;
						}

						if (that.xhr.status) {
							e.status = that.xhr.status;
						} else {
							e.status = null;
						}

						e.statusCode = e.status;;
					} else {
						e.rawResponse = null;
						e.status = null;;
					}

					return that.callback(e);
				}

				that.emit("response", t);
				var r;

				try {
					that._isResponseOK(t) || (r = new Error(t.statusText || "Unsuccessful HTTP response"), r.original = e, r
						.response = t, r.status = t.status);
				} catch (e) {
					r = e;
				}

				if (r) {
					that.callback(r, t);
				} else {
					that.callback(null, t);
				}
			});;
		}

		function f(e, t) {
			var n = m("DELETE", e);

			if (t) {
				n.end(t);
			}

			return n;
		}

		var h;

		if ("undefined" != typeof window) {
			h = window;
		} else {
			if ("undefined" != typeof self) {
				h = self;
			} else {
				console.warn("Using browser-only version of superagent in non-browser environment");
				h = this;;
			}
		}

		var d = n(47);
		var p = n(58);

		var _ = n(12);

		var v = n(57);
		var y = n(59);

		var m = t = e.exports = function(e, n) {
			return "function" == typeof n ? new t.Request("GET", e).end(n) : 1 == arguments.length ? new t.Request("GET",
				e) : new t.Request(e, n);
		};

		;
		t.Request = l;

		m.getXHR = function() {
			if (!(!h.XMLHttpRequest || h.location && "file:" == h.location.protocol && h.ActiveXObject)) {
				return new XMLHttpRequest();
			}

			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}

			try {
				return new ActiveXObject("Msxml2.XMLHTTP.6.0");
			} catch (e) {}

			try {
				return new ActiveXObject("Msxml2.XMLHTTP.3.0");
			} catch (e) {}

			try {
				return new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {}

			throw Error("Browser-only verison of superagent could not find XHR");
		};

		;
		var g = "".trim ? function(e) {
			return e.trim();
		} : function(e) {
			return e.replace(/(^\s*|\s*$)/g, "");
		};
		m.serializeObject = i;
		m.parseString = s;
		m.types = {
			html: "text/html",
			json: "application/json",
			xml: "application/xml",
			urlencoded: "application/x-www-form-urlencoded",
			form: "application/x-www-form-urlencoded",
			"form-data": "application/x-www-form-urlencoded"
		};
		m.serialize = {
			"application/x-www-form-urlencoded": i,
			"application/json": JSON.stringify
		};
		m.parse = {
			"application/x-www-form-urlencoded": s,
			"application/json": JSON.parse
		};
		y(c.prototype);

		c.prototype._parseBody = function(e) {
			var t = m.parse[this.type];
			return this.req._parser ? this.req._parser(this, e) : (!t && u(this.type) && (t = m.parse["application/json"]),
				t && e && (e.length || e instanceof Object) ? t(e) : null);
		};

		c.prototype.toError = function() {
			var e = this.req;
			var t = e.method;
			var n = e.url;
			var r = "cannot " + t + " " + n + " (" + this.status + ")";
			var i = new Error(r);;
			return {};
		};

		m.Response = c;
		d(l.prototype);
		p(l.prototype);

		l.prototype.type = function(e) {
			this.set("Content-Type", m.types[e] || e);
			return this;
		};

		l.prototype.accept = function(e) {
			this.set("Accept", m.types[e] || e);
			return this;
		};

		l.prototype.auth = function(e, t, n) {
			switch (n || (n = {
					type: "function" == typeof btoa ? "basic" : "auto"
				}), n.type) {
				case "basic":
					this.set("Authorization", "Basic " + btoa(e + ":" + t));
					break;

				case "auto":
					this.username = e;
					this.password = t;;
			}

			return this;
		};

		l.prototype.query = function(e) {
			if ("string" != typeof e) {
				e = i(e);
			}

			if (e) {
				this._query.push(e);
			}

			return this;
		};

		l.prototype.attach = function(e, t, n) {
			if (this._data) {
				throw Error("superagent can't mix .send() and .attach()");
			}

			this._getFormData().append(e, t, n || t.name);

			return this;
		};

		l.prototype._getFormData = function() {
			this._formData || (this._formData = new h.FormData());
			return this._formData;
		};

		l.prototype.callback = function(e, t) {
			var n = this._callback;
			this.clearTimeout();

			if (e) {
				this.emit("error", e);
			}

			n(e, t);;
		};

		l.prototype.crossDomainError = function() {
			var e = new Error(
				"Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc."
				);
			e.crossDomain = true;
			e.status = this.status;
			e.method = this.method;
			e.url = this.url;
			this.callback(e);;
		};

		l.prototype.buffer = l.prototype.ca = l.prototype.agent = function() {
			console.warn("This is not supported in browser version of superagent");
			return this;
		};

		l.prototype.pipe = l.prototype.write = function() {
			throw Error("Streaming is not supported in browser version of superagent");
		};

		l.prototype._appendQueryString = function() {
			var e = this._query.join("&");

			if (e) {
				this.url += (this.url.indexOf("?") >= 0 ? "&" : "?") + e;
			}

			if (this._sort) {
				var t = this.url.indexOf("?");

				if (t >= 0) {
					var n = this.url.substring(t + 1).split("&");

					if (v(this._sort)) {
						n.sort(this._sort);
					} else {
						n.sort();
					}

					this.url = this.url.substring(0, t) + "?" + n.join("&");;
				}
			}
		};

		l.prototype._isHost = function(e) {
			return e && "object" == typeof e && !Array.isArray(e) && "[object Object]" !== Object.prototype.toString.call(
			e);
		};

		l.prototype.end = function(e) {
			var that = this;
			var n = this.xhr = m.getXHR();
			var i = this._formData || this._data;;

			if (this._endCalled) {
				console.warn("Warning: .end() was called twice. This is not supported in superagent");
			}

			this._endCalled = true;
			this._callback = e || r;

			n.onreadystatechange = function() {
				var e = n.readyState;

				if (e >= 2 && that._responseTimeoutTimer) {
					clearTimeout(that._responseTimeoutTimer);
				}

				if (4 == e) {
					var r;

					try {
						r = n.status;
					} catch (e) {
						r = 0;
					}

					if (!r) {
						if (that.timedout || that._aborted) {
							return;
						}

						return that.crossDomainError();
					}

					that.emit("end");
				}
			};

			;

			var o = function(e, n) {
				if (n.total > 0) {
					n.percent = n.loaded / n.total * 100;
				}

				n.direction = e;
				that.emit("progress", n);;
			};

			if (this.hasListeners("progress")) {
				try {
					n.onprogress = o.bind(null, "download");

					if (n.upload) {
						n.upload.onprogress = o.bind(null, "upload");
					}

					;
				} catch (e) {}
			}

			this._appendQueryString();

			this._setTimeouts();

			if (this.username && this.password) {
				n.open(this.method, this.url, true, this.username, this.password);
			} else {
				n.open(this.method, this.url, true);
			}

			if (this._withCredentials) {
				n.withCredentials = true;
			}

			if (!this._formData && "GET" != this.method && "HEAD" != this.method && "string" != typeof i && !this._isHost(
				i)) {
				var s = this._header["content-type"];
				var a = this._serializer || m.serialize[s ? s.split(";")[0] : ""];;

				if (!a && u(s)) {
					a = m.serialize["application/json"];
				}

				if (a) {
					i = a(i);
				}

				;
			}

			for (var c in this.header) {
				if (null != this.header[c]) {
					n.setRequestHeader(c, this.header[c]);
				}
			}

			if (this._responseType) {
				n.responseType = this._responseType;
			}

			this.emit("request", this);
			n.send("undefined" != typeof i ? i : null);
			return this;
		};

		m.get = function(e, t, n) {
			var r = m("GET", e);

			if ("function" == typeof t) {
				n = t;
				t = null;;
			}

			if (t) {
				r.query(t);
			}

			if (n) {
				r.end(n);
			}

			return r;
		};

		m.head = function(e, t, n) {
			var r = m("HEAD", e);

			if ("function" == typeof t) {
				n = t;
				t = null;;
			}

			if (t) {
				r.send(t);
			}

			if (n) {
				r.end(n);
			}

			return r;
		};

		m.options = function(e, t, n) {
			var r = m("OPTIONS", e);

			if ("function" == typeof t) {
				n = t;
				t = null;;
			}

			if (t) {
				r.send(t);
			}

			if (n) {
				r.end(n);
			}

			return r;
		};

		m.del = f;
		m.delete = f;

		m.patch = function(e, t, n) {
			var r = m("PATCH", e);

			if ("function" == typeof t) {
				n = t;
				t = null;;
			}

			if (t) {
				r.send(t);
			}

			if (n) {
				r.end(n);
			}

			return r;
		};

		m.post = function(e, t, n) {
			var r = m("POST", e);

			if ("function" == typeof t) {
				n = t;
				t = null;;
			}

			if (t) {
				r.send(t);
			}

			if (n) {
				r.end(n);
			}

			return r;
		};

		m.put = function(e, t, n) {
			var r = m("PUT", e);

			if ("function" == typeof t) {
				n = t;
				t = null;;
			}

			if (t) {
				r.send(t);
			}

			if (n) {
				r.end(n);
			}

			return r;
		};

		;
	}, function(e, t) {
		var n;

		n = function() {
			return this;
		}();

		try {
			n = n || Function("return this")() || (0, eval)("this");
		} catch (e) {
			if ("object" == typeof window) {
				n = window;
			}
		}

		e.exports = n;
	}, function(e, t, n) {
		"use strict";

		function r(e, t) {
			if (!(e instanceof t)) {
				throw new TypeError("Cannot call a class as a function");
			}
		}

		var i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
			return typeof e;
		} : function(e) {
			return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" :
				typeof e;
		};

		var o = function() {
			function e(e, t) {
				for (var n = 0; n < t.length; n++) {
					var r = t[n];
					r.enumerable = r.enumerable || false;
					r.configurable = true;

					if ("value" in r) {
						r.writable = true;
					}

					Object.defineProperty(e, r.key, r);;
				}
			}

			return function(t, n, r) {
				if (n) {
					e(t.prototype, n);
				}

				if (r) {
					e(t, r);
				}

				return t;
			};
		}();

		var s = function() {
			function e() {
				r(this, e);
				this._entries = [];;
			}

			o(e, [{
				key: "append",
				value: function(e, t) {
					if ("string" != typeof e) {
						throw new TypeError("FormData name must be a string");
					}

					if ("string" != typeof t && ("object" !== ("undefined" == typeof t ? "undefined" : i(t)) || "string" !=
							typeof t.uri)) {
						throw new TypeError("FormData value must be a string or { uri: tempFilePath }");
					}

					this._entries.push([e, t]);
				}
			}, {
				key: "set",
				value: function(e, t) {
					var n = this.get(e);

					if (n) {
						n[1] = t;
					} else {
						this.append(e, t);
					}
				}
			}, {
				key: "delete",
				value: function(e) {
					this._entries = this._entries.filter(function(t) {
						return t[0] !== e;
					});
				}
			}, {
				key: "entries",
				value: function() {
					return this._entries;
				}
			}, {
				key: "get",
				value: function(e) {
					return this._entries.find(function(t) {
						return t[0] === e;
					});
				}
			}, {
				key: "getAll",
				value: function(e) {
					return this._entries.filter(function(t) {
						return t[0] === e;
					});
				}
			}, {
				key: "has",
				value: function(e) {
					return this._entries.some(function(t) {
						return t[0] === e;
					});
				}
			}, {
				key: "keys",
				value: function() {
					return this._entries.map(function(e) {
						return e[0];
					});
				}
			}, {
				key: "values",
				value: function() {
					return this._entries.map(function(e) {
						return e[1];
					});
				}
			}]);
			return e;
		}();

		;
		e.exports = s;
	}, function(e, t, n) {
		function r() {
			return !("undefined" == typeof window || !window || "undefined" == typeof window.process || "renderer" !== window
					.process.type) || "undefined" != typeof document && document && "WebkitAppearance" in document.documentElement
				.style || "undefined" != typeof window && window && window.console && (console.firebug || console.exception &&
					console.table) || "undefined" != typeof navigator && navigator && navigator.userAgent && navigator.userAgent
				.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || "undefined" != typeof navigator &&
				navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
		}

		function i(e) {
			var n = this.useColors;

			if ({}) {
				var r = "color: " + this.color;
				e.splice(1, 0, r, "color: inherit");
				var i = 0;
				var o = 0;;
				e[0].replace(/%[a-zA-Z%]/g, function(e) {
					if ("%%" !== e) {
						i++;

						if ("%c" === e) {
							o = i;
						}

						;
					}
				});
				e.splice(o, 0, r);;
			}
		}

		function o() {
			return "object" == typeof console && console.log && Function.prototype.apply.call(console.log, console,
				arguments);
		}

		function s(e) {
			try {
				if (null == e) {
					t.storage.removeItem("debug");
				} else {
					t.storage.debug = e;
				}
			} catch (e) {}
		}

		function a() {
			try {
				return t.storage.debug;
			} catch (e) {}

			if ("undefined" != typeof process && "env" in process) {
				return process.env.DEBUG;
			}
		}

		function u() {
			try {
				return window.localStorage;
			} catch (e) {}
		}

		t = e.exports = n(49);
		t.log = o;
		t.formatArgs = i;
		t.save = s;
		t.load = a;
		t.useColors = r;

		if ("undefined" != typeof chrome && "undefined" != typeof chrome.storage) {
			t.storage = chrome.storage.local;
		} else {
			t.storage = u();
		}

		t.colors = ["lightseagreen", "forestgreen", "goldenrod", "dodgerblue", "darkorchid", "crimson"];

		t.formatters.j = function(e) {
			try {
				return JSON.stringify(e);
			} catch (e) {
				return "[UnexpectedJSONParseError]: " + e.message;
			}
		};

		t.enable(a());;
	}, function(e, t, n) {
		"use strict";

		var r = "undefined" != typeof Symbol ? t.createUniqueKey = Symbol : t.createUniqueKey = function(e) {
			return "[[" + e + "_" + Math.random().toFixed(8).slice(2) + "]]";
		};
		t.LISTENERS = r("listeners");
		t.CAPTURE = 1;
		t.BUBBLE = 2;
		t.ATTRIBUTE = 3;

		t.newNode = function(e, t) {
			return {
				listener: e,
				kind: t,
				next: null
			};
		};

		;
	}, function(e, t, n) {
		"use strict";

		function r(e) {
			if (null === e || void 0 === e) {
				throw new TypeError("Object.assign cannot be called with null or undefined");
			}

			return Object(e);
		}

		function i() {
			try {
				if (!Object.assign) {
					return false;
				}

				var e = new String("abc");
				e[5] = "de";

				if ("5" === Object.getOwnPropertyNames(e)[0]) {
					return false;
				}

				for (var t = {}, n = 0; n < 10; n++) {
					t["_" + String.fromCharCode(n)] = n;
				}

				var r = Object.getOwnPropertyNames(t).map(function(e) {
					return t[e];
				});

				if ("0123456789" !== r.join("")) {
					return false;
				}

				var i = {};
				"abcdefghijklmnopqrst".split("").forEach(function(e) {
					i[e] = e;
				});
				return "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, i)).join("");
			} catch (e) {
				return false;
			}
		}

		var o = Object.prototype.hasOwnProperty;
		var s = Object.prototype.propertyIsEnumerable;;

		if (i()) {
			e.exports = Object.assign;
		} else {
			e.exports = function(e, t) {
				for (var n, i, a = r(e), u = 1; u < arguments.length; u++) {
					n = Object(arguments[u]);

					for (var c in n) {
						if (o.call(n, c)) {
							a[c] = n[c];
						}
					}

					if (Object.getOwnPropertySymbols) {
						i = Object.getOwnPropertySymbols(n);

						for (var l = 0; l < i.length; l++) {
							if (s.call(n, i[l])) {
								a[i[l]] = n[i[l]];
							}
						}
					}
				}

				return a;
			};
		}
	}, function(e, t) {
		function n(e) {
			return null !== e && "object" == typeof e;
		}

		e.exports = n;
	}, function(e, t, n) {
		"use strict";

		function r(e, t) {
			if (!(e instanceof t)) {
				throw new TypeError("Cannot call a class as a function");
			}
		}

		var i = function() {
			function e(e, t) {
				for (var n = 0; n < t.length; n++) {
					var r = t[n];
					r.enumerable = r.enumerable || false;
					r.configurable = true;

					if ("value" in r) {
						r.writable = true;
					}

					Object.defineProperty(e, r.key, r);;
				}
			}

			return function(t, n, r) {
				if (n) {
					e(t.prototype, n);
				}

				if (r) {
					e(t, r);
				}

				return t;
			};
		}();

		var o = function() {
			function e() {
				r(this, e);
			}

			i(e, [{
				key: "getItem",
				value: function(e) {
					return uni.getStorageSync(e);
				}
			}, {
				key: "setItem",
				value: function(e, t) {
					return uni.setStorageSync(e, t);
				}
			}, {
				key: "removeItem",
				value: function(e) {
					return this.setItem(e, "");
				}
			}, {
				key: "clear",
				value: function() {
					return uni.clearStorageSync();
				}
			}]);
			return e;
		}();

		;
		e.exports = new o();
	}, function(e, t, n) {
		"use strict";

		function r(e, t) {
			if (!(e instanceof t)) {
				throw new TypeError("Cannot call a class as a function");
			}
		}

		function i(e, t) {
			if (!e) {
				throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
			}

			return !t || "object" != typeof t && "function" != typeof t ? e : t;
		}

		function o(e, t) {
			if ("function" != typeof t && null !== t) {
				throw new TypeError("Super expression must either be null or a function, not " + typeof t);
			}

			e.prototype = Object.create(t && t.prototype, {
				constructor: {
					value: e,
					enumerable: false,
					writable: true,
					configurable: true
				}
			});

			if (t) {
				if (Object.setPrototypeOf) {
					Object.setPrototypeOf(e, t);
				} else {
					e.__proto__ = t;
				}
			}

			;
		}

		function s(e) {
			if (_) {
				_._readyState = d;

				_.dispatchEvent({
					type: "error",
					message: e.errMsg
				});

				;
			}
		}

		var a = function() {
			function e(e, t) {
				for (var n = 0; n < t.length; n++) {
					var r = t[n];
					r.enumerable = r.enumerable || false;
					r.configurable = true;

					if ("value" in r) {
						r.writable = true;
					}

					Object.defineProperty(e, r.key, r);;
				}
			}

			return function(t, n, r) {
				if (n) {
					e(t.prototype, n);
				}

				if (r) {
					e(t, r);
				}

				return t;
			};
		}();

		var u = n(11);
		var c = n(20);
		var l = 0;
		var f = 1;
		var h = 2;
		var d = 3;
		var p = ["open", "error", "message", "close"];

		var _ = void 0;

		;
		uni.onSocketOpen(function(e) {
			if (_) {
				_._readyState = f;

				_.dispatchEvent({
					type: "open"
				});

				;
			}
		});
		uni.onSocketError(s);
		uni.onSocketMessage(function(e) {
			if (_) {
				var t = e.data;
				var n = e.origin;
				var r = e.ports;
				var i = e.source;;

				_.dispatchEvent({
					data: t,
					origin: n,
					ports: r,
					source: i,
					type: "message"
				});
			}
		});
		uni.onSocketClose(function(e) {
			if (_) {
				_._readyState = d;
				var t = e.code;
				var n = e.reason;
				var r = e.wasClean;;

				_.dispatchEvent({
					code: t,
					reason: n,
					wasClean: r,
					type: "close"
				});

				_ = null;;
			}
		});;

		var v = function(e) {
			function t(e, n) {
				r(this, t);

				if (!e) {
					throw new TypeError("Failed to construct 'WebSocket': url required");
				}

				if (n) {
					throw new Error("subprotocal not supported in weapp");
				}

				var o = i(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));
				return {};
			}

			o(t, e);
			a(t, [{
				key: "close",
				value: function() {
					if (this.readyState === l) {
						console.warn("close WebSocket which is connecting might not work");
					}

					uni.closeSocket();;
				}
			}, {
				key: "send",
				value: function(e) {
					if (this.readyState !== f) {
						throw new Error("INVALID_STATE_ERR");
					}

					if ("string" != typeof e) {
						throw new TypeError("only string typed data are supported");
					}

					uni.sendSocketMessage({
						data: e
					});
				}
			}, {
				key: "url",
				get: function() {
					return this._url;
				}
			}, {
				key: "protocal",
				get: function() {
					return this._protocal;
				}
			}, {
				key: "readyState",
				get: function() {
					return this._readyState;
				}
			}]);
			return t;
		}(c(p));

		u(v, {
			CONNECTING: l,
			OPEN: f,
			CLOSING: h,
			CLOSED: d
		});
		e.exports = v;;
	}, function(e, t, n) {
		"use strict";

		function r(e, t, n) {
			if (t in e) {
				Object.defineProperty(e, t, {
					value: n,
					enumerable: true,
					configurable: true,
					writable: true
				});
			} else {
				e[t] = n;
			}

			return e;
		}

		function i(e, t) {
			if (!(e instanceof t)) {
				throw new TypeError("Cannot call a class as a function");
			}
		}

		function o(e, t) {
			if (!e) {
				throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
			}

			return !t || "object" != typeof t && "function" != typeof t ? e : t;
		}

		function s(e, t) {
			if ("function" != typeof t && null !== t) {
				throw new TypeError("Super expression must either be null or a function, not " + typeof t);
			}

			e.prototype = Object.create(t && t.prototype, {
				constructor: {
					value: e,
					enumerable: false,
					writable: true,
					configurable: true
				}
			});

			if (t) {
				if (Object.setPrototypeOf) {
					Object.setPrototypeOf(e, t);
				} else {
					e.__proto__ = t;
				}
			}

			;
		}

		function a(e) {
			this.status = e.statusCode;
			this.statusText = e.statusCode;;
			var t = e.data;

			if ("string" != typeof t) {
				t = JSON.stringify(t);
			}

			this.responseText = this.response = t;
			this.readyState = v;
			this.dispatchEvent({
				type: "readystatechange"
			});;
		}

		var u = function() {
			function e(e, t) {
				for (var n = 0; n < t.length; n++) {
					var r = t[n];
					r.enumerable = r.enumerable || false;
					r.configurable = true;

					if ("value" in r) {
						r.writable = true;
					}

					Object.defineProperty(e, r.key, r);;
				}
			}

			return function(t, n, r) {
				if (n) {
					e(t.prototype, n);
				}

				if (r) {
					e(t, r);
				}

				return t;
			};
		}();

		var c = n(11);
		var l = n(20);
		var f = n(8);
		var h = 0;
		var d = 1;
		var p = 2;
		var _ = 3;
		var v = 4;
		var y = ["abort", "error", "load", "loadstart", "progress", "timeout", "loadend", "readystatechange"];

		var m = function(e) {
			function t() {
				i(this, t);
				var e = o(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));
				return {};
			}

			s(t, e);
			u(t, [{
				key: "abort",
				value: function() {
					throw new Error("not supported in weapp");
				}
			}, {
				key: "getAllResponseHeaders",
				value: function() {
					console.warn("getAllResponseHeaders always returns ''");
					return "";
				}
			}, {
				key: "getResponseHeader",
				value: function(e) {
					return "content-type" === e ? (console.warn("get content-type always returns 'application/json'"),
						"application/json") : (console.warn("getResponseHeader always returns ''"), "");
				}
			}, {
				key: "overrideMimeType",
				value: function() {
					throw new Error("not supported in weapp");
				}
			}, {
				key: "open",
				value: function(e, t) {
					var n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];

					if (this.readyState !== h) {
						throw new Error("request is already opened");
					}

					if (!n) {
						throw new Error("sync request is not supported");
					}

					this._method = e;
					this._url = t;
					this.readyState = d;
					this.dispatchEvent({
						type: "readystatechange"
					});;
				}
			}, {
				key: "setRequestHeader",
				value: function(e, t) {
					if (this.readyState !== d) {
						throw new Error("request is not opened");
					}

					this._headers[e.toLowerCase()] = t;
				}
			}, {
				key: "send",
				value: function(e) {
					var that = this;

					if (this.readyState !== d) {
						throw new Error("request is not opened");
					}

					if (e instanceof f) {
						var n = e.entries();
						var i = n.filter(function(e) {
							return "string" != typeof e[1];
						});;

						if (0 === i.length) {
							throw new Error("Must specify a Blob field in FormData");
						}

						if (i.length > 1) {
							console.warn("Only the first Blob will be send in Weapp");
						}

						var o = n.filter(function(e) {
							return "string" == typeof e[1];
						}).reduce(function(e, t) {
							return c(e, r({}, t[0], t[1]));
						}, {});
						uni.uploadFile({
							url: this._url,
							name: i[0][0],
							filePath: i[0][1].uri,
							formData: o,
							header: this._headers,
							success: a.bind(this),
							fail: function(e) {
								that.status = 0;
								that.readyState = v;
								that.dispatchEvent({
									type: "readystatechange"
								});
								that.dispatchEvent({
									type: "error"
								});;
							}
						});
					} else {
						uni.request({
							url: this._url,
							data: e || "",
							method: this._method.toUpperCase(),
							header: this._headers,
							success: a.bind(this),
							fail: function(e) {
								that.status = 0;
								that.readyState = v;
								that.dispatchEvent({
									type: "readystatechange"
								});
								that.dispatchEvent({
									type: "error"
								});;
							}
						});
					}
				}
			}]);
			return t;
		}(l(y));

		;
		c(m, {
			UNSENT: h,
			OPENED: d,
			HEADERS_RECEIVED: p,
			LOADING: _,
			DONE: v
		});
		e.exports = m;;
	}, function(e, t, n) {
		"use strict";

		var r = n(17);
		var i = n(4);
		var o = t.removeAsync = r.removeItemAsync.bind(r);

		var s = function(e, t) {
			try {
				e = JSON.parse(e);
			} catch (e) {
				return null;
			}

			if (e) {
				var n = e.expiredAt && e.expiredAt < Date.now();
				return n ? o(t).then(function() {
					return null;
				}) : e.value;
			}

			return null;
		};

		;

		t.getAsync = function(e) {
			e = i.applicationId + "/" + e;
			return r.getItemAsync(e).then(function(t) {
				return s(t, e);
			});
		};

		t.setAsync = function(e, t, n) {
			var o = {
				value: t
			};

			if ("number" == typeof n) {
				o.expiredAt = Date.now() + n;
			}

			return r.setItemAsync(i.applicationId + "/" + e, JSON.stringify(o));
		};

		;
	}, function(e, t, n) {
		"use strict";

		var r = n(0);
		var i = n(2);
		var o = n(45);
		var s = ["getItem", "setItem", "removeItem", "clear"];;

		if (o.async) {
			r(s).each(function(e) {
				if ("function" != typeof o[e]) {
					o[e] = function() {
						var t = new Error("Synchronous API [" + e + "] is not available in this runtime.");
						throw {};
					};
				}
			});
		} else {
			r(s).each(function(e) {
				if ("function" == typeof o[e]) {
					o[e + "Async"] = function() {
						return i.resolve(o[e].apply(o, arguments));
					};
				}
			});
		}

		e.exports = o;;
	}, function(e, t, n) {
		"use strict";

		e.exports = "2.0.0";
	}, function(e, t) {
		var n = {
			utf8: {
				stringToBytes: function(e) {
					return n.bin.stringToBytes(unescape(encodeURIComponent(e)));
				},
				bytesToString: function(e) {
					return decodeURIComponent(escape(n.bin.bytesToString(e)));
				}
			},
			bin: {
				stringToBytes: function(e) {
					for (var t = [], n = 0; n < e.length; n++) {
						t.push(255 & e.charCodeAt(n));
					}

					return t;
				},
				bytesToString: function(e) {
					for (var t = [], n = 0; n < e.length; n++) {
						t.push(String.fromCharCode(e[n]));
					}

					return t.join("");
				}
			}
		};
		e.exports = n;
	}, function(e, t, n) {
		"use strict";

		var r = n(10);
		var i = n(51);
		var o = n(52);
		var s = r.LISTENERS;
		var a = r.CAPTURE;
		var u = r.BUBBLE;
		var c = r.ATTRIBUTE;
		var l = r.newNode;
		var f = i.defineCustomEventTarget;
		var h = o.createEventWrapper;
		var d = o.STOP_IMMEDIATE_PROPAGATION_FLAG;
		var p = "undefined" != typeof window && "undefined" != typeof window.EventTarget;

		var _ = e.exports = function e() {
			if (!(this instanceof e)) {
				if (1 === arguments.length && Array.isArray(arguments[0])) {
					return f(e, arguments[0]);
				}

				if (arguments.length > 0) {
					for (var t = Array(arguments.length), n = 0; n < arguments.length; ++n) {
						t[n] = arguments[n];
					}

					return f(e, t);
				}

				throw new TypeError("Cannot call a class as a function");
			}

			Object.defineProperty(this, s, {
				value: Object.create(null)
			});
		};

		;
		_.prototype = Object.create((p ? window.EventTarget : Object).prototype, {
			constructor: {
				value: _,
				writable: true,
				configurable: true
			},
			addEventListener: {
				value: function(e, t, n) {
					if (null == t) {
						return false;
					}

					if ("function" != typeof t && "object" != typeof t) {
						throw new TypeError('"listener" is not an object.');
					}

					var r = n ? a : u;
					var i = this[s][e];;

					if (null == i) {
						this[s][e] = l(t, r);
						return true;
					}

					for (var o = null; null != i;) {
						if (i.listener === t && i.kind === r) {
							return false;
						}

						o = i;
						i = i.next;;
					}

					o.next = l(t, r);
					return true;
				},
				configurable: true,
				writable: true
			},
			removeEventListener: {
				value: function(e, t, n) {
					if (null == t) {
						return false;
					}

					for (var r = n ? a : u, i = null, o = this[s][e]; null != o;) {
						if (o.listener === t && o.kind === r) {
							if (null == i) {
								this[s][e] = o.next;
							} else {
								i.next = o.next;
							}

							return true;
						}

						i = o;
						o = o.next;;
					}

					return false;
				},
				configurable: true,
				writable: true
			},
			dispatchEvent: {
				value: function(e) {
					var t = this[s][e.type];

					if (null == t) {
						return true;
					}

					for (var n = h(e, this); null != t && ("function" == typeof t.listener ? t.listener.call(this, n) : t
							.kind !== c && "function" == typeof t.listener.handleEvent && t.listener.handleEvent(n), !n[d]);) {
						t = t.next;
					}

					return !n.defaultPrevented;
				},
				configurable: true,
				writable: true
			}
		});
	}, function(e, t, n) {
		"use strict";

		var r = n(23).polyfill;
		window = window || {};
		r();
		r(window);;

		try {
			localStorage = localStorage || n(13);
		} catch (e) {}

		try {
			XMLHttpRequest = XMLHttpRequest || n(15);
		} catch (e) {}

		try {
			FormData = FormData || n(8);
		} catch (e) {}

		try {
			WebSocket = WebSocket || n(14);
		} catch (e) {}
	}, function(e, t, n) {
		"use strict";

		var r = n(4);
		r._ = n(0);
		r.version = n(18);
		r.Promise = n(2);
		r.localStorage = n(17);
		r.Cache = n(16);
		r.Error = n(3);
		n(29);
		n(26)(r);
		n(28)(r);
		n(24)(r);
		n(32)(r);
		n(35)(r);
		n(27)(r);
		n(31)(r);
		n(36)(r);
		n(44)(r);
		n(34)(r);
		n(25)(r);
		n(33)(r);
		n(38)(r);
		n(37)(r);
		n(30)(r);
		e.exports = r;;
	}, function(e, t, n) {
		"use strict";

		(function(t) {
			var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
				return typeof e;
			} : function(e) {
				return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" :
					typeof e;
			};
			var i = n(11);
			var o = n(13);
			var s = n(15);
			var a = n(8);
			var u = n(14);;
			e.exports = {
				polyfill: function() {
					var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : t || window;

					if ("object" !== ("undefined" == typeof e ? "undefined" : r(e))) {
						throw new Error("polyfill target is not an Object");
					}

					i(e, {
						localStorage: o,
						XMLHttpRequest: s,
						FormData: a,
						WebSocket: u,
						Object: Object
					});

					if (e.localStorage !== o) {
						e.wxStorage = o;
					}

					;
				},
				localStorage: o,
				XMLHttpRequest: s,
				FormData: a,
				WebSocket: u
			};
		}).call(t, n(7));
	}, function(e, t, n) {
		"use strict";

		var r = n(0);

		e.exports = function(e) {
			var t = "*";

			e.ACL = function(t) {
				var that = this;
				that.permissionsById = {};

				if (r.isObject(t)) {
					if (t instanceof e.User) {
						that.setReadAccess(t, true);
						that.setWriteAccess(t, true);;
					} else {
						if (r.isFunction(t)) {
							throw new Error("AV.ACL() called with a function.  Did you forget ()?");
						}

						e._objectEach(t, function(t, i) {
							if (!r.isString(i)) {
								throw new Error("Tried to create an ACL with an invalid userId.");
							}

							that.permissionsById[i] = {};

							e._objectEach(t, function(e, t) {
								if ("read" !== t && "write" !== t) {
									throw new Error("Tried to create an ACL with an invalid permission type.");
								}

								if (!r.isBoolean(e)) {
									throw new Error("Tried to create an ACL with an invalid permission value.");
								}

								that.permissionsById[i][t] = e;
							});

							;
						});
					}
				}
			};

			e.ACL.prototype.toJSON = function() {
				return r.clone(this.permissionsById);
			};

			e.ACL.prototype._setAccess = function(t, n, i) {
				if (n instanceof e.User) {
					n = n.id;
				} else {
					if (n instanceof e.Role) {
						n = "role:" + n.getName();
					}
				}

				if (!r.isString(n)) {
					throw new Error("userId must be a string.");
				}

				if (!r.isBoolean(i)) {
					throw new Error("allowed must be either true or false.");
				}

				var o = this.permissionsById[n];

				if (!o) {
					if (!i) {
						return;
					}

					o = {};
					this.permissionsById[n] = o;;
				}

				if (i) {
					this.permissionsById[n][t] = true;
				} else {
					delete o[t];

					if (r.isEmpty(o)) {
						delete o[n];
					}

					;
				}
			};

			e.ACL.prototype._getAccess = function(t, n) {
				if (n instanceof e.User) {
					n = n.id;
				} else {
					if (n instanceof e.Role) {
						n = "role:" + n.getName();
					}
				}

				var r = this.permissionsById[n];
				return !!r && !!r[t];
			};

			e.ACL.prototype.setReadAccess = function(e, t) {
				this._setAccess("read", e, t);
			};

			e.ACL.prototype.getReadAccess = function(e) {
				return this._getAccess("read", e);
			};

			e.ACL.prototype.setWriteAccess = function(e, t) {
				this._setAccess("write", e, t);
			};

			e.ACL.prototype.getWriteAccess = function(e) {
				return this._getAccess("write", e);
			};

			e.ACL.prototype.setPublicReadAccess = function(e) {
				this.setReadAccess(t, e);
			};

			e.ACL.prototype.getPublicReadAccess = function() {
				return this.getReadAccess(t);
			};

			e.ACL.prototype.setPublicWriteAccess = function(e) {
				this.setWriteAccess(t, e);
			};

			e.ACL.prototype.getPublicWriteAccess = function() {
				return this.getWriteAccess(t);
			};

			e.ACL.prototype.getRoleReadAccess = function(t) {
				if (t instanceof e.Role) {
					t = t.getName();
				}

				if (r.isString(t)) {
					return this.getReadAccess("role:" + t);
				}

				throw new Error("role must be a AV.Role or a String");
			};

			e.ACL.prototype.getRoleWriteAccess = function(t) {
				if (t instanceof e.Role) {
					t = t.getName();
				}

				if (r.isString(t)) {
					return this.getWriteAccess("role:" + t);
				}

				throw new Error("role must be a AV.Role or a String");
			};

			e.ACL.prototype.setRoleReadAccess = function(t, n) {
				if (t instanceof e.Role) {
					t = t.getName();
				}

				if (r.isString(t)) {
					return void this.setReadAccess("role:" + t, n);
				}

				throw new Error("role must be a AV.Role or a String");
			};

			e.ACL.prototype.setRoleWriteAccess = function(t, n) {
				if (t instanceof e.Role) {
					t = t.getName();
				}

				if (r.isString(t)) {
					return void this.setWriteAccess("role:" + t, n);
				}

				throw new Error("role must be a AV.Role or a String");
			};

			;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);
		var i = n(1).request;;

		e.exports = function(e) {
			e.Cloud = e.Cloud || {};
			r.extend(e.Cloud, {
				run: function(t, n, r) {
					var o = i("functions", t, null, "POST", e._encode(n, null, true), r);
					return o.then(function(t) {
						return e._decode(t).result;
					});
				},
				rpc: function(t, n, o) {
					return r.isArray(n) ? Promise.reject(new Error(
						"Can't pass Array as the param of rpc function in JavaScript SDK.")) : i("call", t, null, "POST", e
						._encodeObjectOrArray(n), o).then(function(t) {
						return e._decode(t).result;
					});
				},
				getServerDate: function() {
					var t = i("date", null, null, "GET");
					return t.then(function(t) {
						return e._decode(t);
					});
				},
				requestSmsCode: function(e) {
					if (r.isString(e)) {
						e = {
							mobilePhoneNumber: e
						};
					}

					if (!e.mobilePhoneNumber) {
						throw new Error("Missing mobilePhoneNumber.");
					}

					var t = i("requestSmsCode", null, null, "POST", e);
					return t;
				},
				verifySmsCode: function(e, t) {
					if (!e) {
						throw new Error("Missing sms code.");
					}

					var n = {};

					if (r.isString(t)) {
						n.mobilePhoneNumber = t;
					}

					var o = i("verifySmsCode", e, null, "POST", n);
					return o;
				}
			});;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);

		e.exports = function(e) {
			var t = /\s+/;
			var n = Array.prototype.slice;;
			e.Events = {
				on: function(e, n, r) {
					var i;
					var o;
					var s;
					var a;
					var u;;

					if (!n) {
						return this;
					}

					for (e = e.split(t), i = this._callbacks || (this._callbacks = {}), o = e.shift(); o;) {
						u = i[o];

						if (u) {
							s = u.tail;
						} else {
							s = {};
						}

						s.next = a = {};
						s.context = r;
						s.callback = n;
						i[o] = {
							tail: a,
							next: u ? u.next : s
						};
						o = e.shift();;
					}

					return this;
				},
				off: function(e, n, i) {
					var o;
					var s;
					var a;
					var u;
					var c;
					var l;;

					if (s = this._callbacks) {
						if (!(e || n || i)) {
							delete this._callbacks;
							return this;
						}

						for (e ? e = e.split(t) : e = r.keys(s), o = e.shift(); o;) {
							a = s[o];
							delete s[o];

							if (a && (n || i)) {
								for (u = a.tail, a = a.next; a !== u;) {
									c = a.callback;
									l = a.context;

									if (n && c !== n || i && l !== i) {
										this.on(o, c, l);
									}

									a = a.next;;
								}

								o = e.shift();
							}
						}

						return this;
					}
				},
				trigger: function(e) {
					var r;
					var i;
					var o;
					var s;
					var a;
					var u;
					var c;;

					if (!(o = this._callbacks)) {
						return this;
					}

					for (u = o.all, e = e.split(t), c = n.call(arguments, 1), r = e.shift(); r;) {
						if (i = o[r]) {
							for (s = i.tail;
								(i = i.next) !== s;) {
								i.callback.apply(i.context || this, c);
							}
						}

						if (i = u) {
							for (s = i.tail, a = [r].concat(c);
								(i = i.next) !== s;) {
								i.callback.apply(i.context || this, a);
							}
						}

						r = e.shift();
					}

					return this;
				}
			};
			e.Events.bind = e.Events.on;
			e.Events.unbind = e.Events.off;;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);
		var i = n(41);
		var o = n(42);
		var s = n(43);
		var a = n(3);
		var u = n(1).request;
		var c = n(2);;

		e.exports = function(e) {
			var t = (e._config, function() {
				return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1);
			});

			var l = function(e) {
				return e.match(/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/)[4];
			};

			var f = function(e) {
				if (e < 26) {
					return String.fromCharCode(65 + e);
				}

				if (e < 52) {
					return String.fromCharCode(97 + (e - 26));
				}

				if (e < 62) {
					return String.fromCharCode(48 + (e - 52));
				}

				if (62 === e) {
					return "+";
				}

				if (63 === e) {
					return "/";
				}

				throw new Error("Tried to encode large digit " + e + " in base64.");
			};

			var h = function(e) {
				var t = [];
				t.length = Math.ceil(e.length / 3);
				r.times(t.length, function(n) {
					var r = e[3 * n];
					var i = e[3 * n + 1] || 0;
					var o = e[3 * n + 2] || 0;
					var s = 3 * n + 1 < e.length;
					var a = 3 * n + 2 < e.length;;
					t[n] = [f(r >> 2 & 63), f(r << 4 & 48 | i >> 4 & 15), s ? f(i << 2 & 60 | o >> 6 & 3) : "=", a ? f(63 &
						o) : "="
					].join("");
				});
				return t.join("");
			};

			;

			e.File = function(t, i, o) {
				this.attributes = {
					name: t,
					url: "",
					metaData: {},
					base64: ""
				};
				this._extName = "";;
				var s = void 0;

				if (i && i.owner) {
					s = i.owner;
				} else {
					if (!e._config.disableCurrentUser) {
						try {
							s = e.User.current();
						} catch (e) {
							if ("SYNC_API_NOT_AVAILABLE" !== e.code) {
								throw e;
							}

							console.warn(
								"Get current user failed. It seems this runtime use an async storage system, please create AV.File in the callback of AV.User.currentAsync()."
								);
						}
					}
				}

				this.attributes.metaData = {
					owner: s ? s.id : "unknown"
				};
				this.set("mime_type", o);

				if (r.isArray(i)) {
					this.attributes.metaData.size = i.length;
					i = {
						base64: h(i)
					};;
				}

				if (i && i.base64) {
					var a = n(46);
					var u = a(i.base64, o);;
					this._source = c.resolve({
						data: u,
						type: o
					});
				} else {
					if (i && i.blob) {
						if (!i.blob.type && o) {
							i.blob.type = o;
						}

						i.blob.name || (i.blob.name = t);
						this._extName = l(i.blob.uri);
						this._source = c.resolve({
							data: i.blob,
							type: o
						});;
					} else {
						if ("undefined" != typeof File && i instanceof File) {
							if (i.size) {
								this.attributes.metaData.size = i.size;
							}

							if (i.name) {
								this._extName = l(i.name);
							}

							this._source = c.resolve({
								data: i,
								type: o
							});;
						} else {
							if ("undefined" != typeof Buffer && Buffer.isBuffer(i)) {
								this.attributes.metaData.size = i.length;
								this._source = c.resolve({
									data: i,
									type: o
								});;
							} else {
								if (r.isString(i)) {
									throw new Error("Creating a AV.File from a String is not yet supported.");
								}
							}
						}
					}
				}
			};

			e.File.withURL = function(t, n, r, i) {
				if (!t || !n) {
					throw new Error("Please provide file name and url");
				}

				var o = new e.File(t, null, i);

				if (r) {
					for (var s in r) {
						o.attributes.metaData[s] || (o.attributes.metaData[s] = r[s]);
					}
				}

				return {};
			};

			e.File.createWithoutData = function(t) {
				var n = new e.File();
				return {};
			};

			e.File.prototype = {
				className: "_File",
				toJSON: function() {
					return e._encode(this);
				},
				getACL: function() {
					return this._acl;
				},
				setACL: function(t) {
					return t instanceof e.ACL ? void(this._acl = t) : new a(a.OTHER_CAUSE, "ACL must be a AV.ACL.");
				},
				name: function() {
					return this.get("name");
				},
				url: function() {
					return this.get("url");
				},
				get: function(e) {
					switch (e) {
						case "objectId":
							return this.id;

						case "url":
						case "name":
						case "mime_type":
						case "metaData":
						case "createdAt":
						case "updatedAt":
							return this.attributes[e];

						default:
							return this.attributes.metaData[e];
					}
				},
				set: function e() {
					for (var that = this, e = function(e, n) {
							switch (e) {
								case "name":
								case "url":
								case "mime_type":
								case "base64":
								case "metaData":
									that.attributes[e] = n;
									break;

								default:
									that.attributes.metaData[e] = n;
							}
						}, n = arguments.length, r = Array(n), i = 0; i < n; i++) {
						r[i] = arguments[i];
					}

					switch (r.length) {
						case 1:
							for (var o in r[0]) {
								e(o, r[0][o]);
							}

							break;

						case 2:
							e(r[0], r[1]);
					}
				},
				metaData: function(e, t) {
					return e && t ? (this.attributes.metaData[e] = t, this) : e && !t ? this.attributes.metaData[e] : this
						.attributes.metaData;
				},
				thumbnailURL: function(e, t, n, r, i) {
					var o = this.attributes.url;

					if (!o) {
						throw new Error("Invalid url.");
					}

					if (!e || !t || e <= 0 || t <= 0) {
						throw new Error("Invalid width or height value.");
					}

					n = n || 100;
					r = !r || r;

					if (n <= 0 || n > 100) {
						throw new Error("Invalid quality value.");
					}

					i = i || "png";
					var s = r ? 2 : 1;
					return o + "?imageView/" + s + "/w/" + e + "/h/" + t + "/q/" + n + "/format/" + i;
				},
				size: function() {
					return this.metaData().size;
				},
				ownerId: function() {
					return this.metaData().owner;
				},
				destroy: function(e) {
					if (!this.id) {
						return c.reject(new Error("The file id is not eixsts."));
					}

					var t = u("files", null, this.id, "DELETE", null, e);
					return t;
				},
				_fileToken: function(e) {
					var that = this;
					var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "fileTokens";
					var i = this.attributes.name;

					var o = l(i) || this._extName;

					var s = t() + t() + t() + t() + t() + o;
					var a = {
						key: s,
						name: i,
						ACL: this._acl,
						mime_type: e,
						metaData: this.attributes.metaData
					};;
					this._qiniu_key = s;
					return u(r, null, null, "POST", a).then(function(e) {
						if (e.mime_type) {
							that.set("mime_type", e.mime_type);
						}

						return e;
					});
				},
				save: function(e) {
					var that = this;

					if (this.id) {
						throw new Error("File already saved. If you want to manipulate a file, use AV.Query to get it.");
					}

					if (!this._previousSave) {
						if (this._source) {
							this._previousSave = this._source.then(function(n) {
								var r = n.data;
								var a = n.type;;
								return that._fileToken(a).then(function(n) {
									var a = void 0;

									switch (n.provider) {
										case "s3":
											a = s(n, r, that, e);
											break;

										case "qcloud":
											a = i(n, r, that, e);
											break;

										case "qiniu":
										default:
											a = o(n, r, that, e);
									}

									return a.catch(function(e) {
										throw (that.destroy(), e);
									});
								});
							});
						} else {
							if (this.attributes.url && "external" === this.attributes.metaData.__source) {
								var n = {
									name: this.attributes.name,
									ACL: this._acl,
									metaData: this.attributes.metaData,
									mime_type: this.mimeType,
									url: this.attributes.url
								};
								this._previousSave = u("files", this.attributes.name, null, "post", n).then(function(e) {
									return {};
								});
							}
						}
					}

					return this._previousSave;
				},
				fetch: function(e) {
					var e = null;
					var t = u("files", null, this.id, "GET", e);;
					return t.then(this._finishFetch.bind(this));
				},
				_finishFetch: function(t) {
					var n = e.Object.prototype.parse(t);
					n.attributes = {
						name: n.name,
						url: n.url,
						mime_type: n.mime_type
					};
					n.attributes.metaData = n.metaData || {};
					n.id = n.objectId;
					delete n.objectId;
					delete n.metaData;
					delete n.url;
					delete n.name;
					delete n.mime_type;
					r.extend(this, n);
					return this;
				}
			};;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);

		e.exports = function(e) {
			e.GeoPoint = function(t, n) {
				if (r.isArray(t)) {
					e.GeoPoint._validate(t[0], t[1]);

					this.latitude = t[0];
					this.longitude = t[1];;
				} else {
					if (r.isObject(t)) {
						e.GeoPoint._validate(t.latitude, t.longitude);

						this.latitude = t.latitude;
						this.longitude = t.longitude;;
					} else {
						if (r.isNumber(t) && r.isNumber(n)) {
							e.GeoPoint._validate(t, n);

							this.latitude = t;
							this.longitude = n;;
						} else {
							this.latitude = 0;
							this.longitude = 0;;
						}
					}
				}

				var that = this;

				if (this.__defineGetter__ && this.__defineSetter__) {
					this._latitude = this.latitude;
					this._longitude = this.longitude;

					this.__defineGetter__("latitude", function() {
						return that._latitude;
					});

					this.__defineGetter__("longitude", function() {
						return that._longitude;
					});

					this.__defineSetter__("latitude", function(t) {
						e.GeoPoint._validate(t, that.longitude);

						that._latitude = t;;
					});

					this.__defineSetter__("longitude", function(t) {
						e.GeoPoint._validate(that.latitude, t);

						that._longitude = t;;
					});

					;
				}
			};

			e.GeoPoint._validate = function(e, t) {
				if (e < -90) {
					throw new Error("AV.GeoPoint latitude " + e + " < -90.0.");
				}

				if (e > 90) {
					throw new Error("AV.GeoPoint latitude " + e + " > 90.0.");
				}

				if (t < -180) {
					throw new Error("AV.GeoPoint longitude " + t + " < -180.0.");
				}

				if (t > 180) {
					throw new Error("AV.GeoPoint longitude " + t + " > 180.0.");
				}
			};

			e.GeoPoint.current = function() {
				return new e.Promise(function(t, n) {
					navigator.geolocation.getCurrentPosition(function(n) {
						t(new e.GeoPoint({
							latitude: n.coords.latitude,
							longitude: n.coords.longitude
						}));
					}, n);
				});
			};

			e.GeoPoint.prototype = {
				toJSON: function() {
					e.GeoPoint._validate(this.latitude, this.longitude);

					return {
						__type: "GeoPoint",
						latitude: this.latitude,
						longitude: this.longitude
					};
				},
				radiansTo: function(e) {
					var t = Math.PI / 180;
					var n = this.latitude * t;
					var r = this.longitude * t;
					var i = e.latitude * t;
					var o = e.longitude * t;
					var s = n - i;
					var a = r - o;
					var u = Math.sin(s / 2);
					var c = Math.sin(a / 2);
					var l = u * u + Math.cos(n) * Math.cos(i) * c * c;;
					l = Math.min(1, l);
					return 2 * Math.asin(Math.sqrt(l));
				},
				kilometersTo: function(e) {
					return 6371 * this.radiansTo(e);
				},
				milesTo: function(e) {
					return 3958.8 * this.radiansTo(e);
				}
			};;
		};
	}, function(e, t, n) {
		"use strict";

		var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
			return typeof e;
		} : function(e) {
			return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" :
				typeof e;
		};
		var i = n(4);
		var o = n(1);

		var s = function(e, t, n, r) {
			if (i.applicationId && e !== i.applicationId && t !== i.applicationKey && n !== i.masterKey) {
				console.warn("LeanCloud SDK is already initialized, please do not reinitialize it.");
			}

			i.applicationId = e;
			i.applicationKey = t;
			i.masterKey = n;
			i._useMasterKey = false;;
		};

		var a = function() {
			console.warn("MasterKey is not supposed to be used in browser.");
		};

		;

		i.init = function() {
			switch (arguments.length) {
				case 1:
					var e = arguments.length <= 0 ? void 0 : arguments[0];

					if ("object" !== ("undefined" == typeof e ? "undefined" : r(e))) {
						throw new Error("AV.init(): Parameter is not correct.");
					}

					if (e.masterKey) {
						a();
					}

					s(e.appId, e.appKey, e.masterKey, e.hookKey);
					o.setServerUrlByRegion(e.region);
					i._config.disableCurrentUser = e.disableCurrentUser;;
					break;

				case 2:
				case 3:
					console.warn(
						"Please use AV.init() to replace AV.initialize(), AV.init() need an Object param, like { appId: 'YOUR_APP_ID', appKey: 'YOUR_APP_KEY' } . Docs: https://leancloud.cn/docs/sdk_setup-js.html"
						);

					if (3 === arguments.length) {
						a();
					}

					s.apply(void 0, arguments);
					o.setServerUrlByRegion("cn");;
			}
		};

		i.initialize = i.init;;
	}, function(e, t, n) {
		"use strict";

		var r = n(0);
		var i = n(3);
		var o = n(1).request;;

		e.exports = function(e) {
			e.Insight = e.Insight || {};
			r.extend(e.Insight, {
				startJob: function(t, n) {
					if (!t || !t.sql) {
						throw new Error("Please provide the sql to run the job.");
					}

					var r = {
						jobConfig: t,
						appId: e.applicationId
					};
					var i = o("bigquery", "jobs", null, "POST", e._encode(r, null, true), n);;
					return i.then(function(t) {
						return e._decode(t).id;
					});
				},
				on: function(e, t) {}
			});

			e.Insight.JobQuery = function(e, t) {
				if (!e) {
					throw new Error("Please provide the job id.");
				}

				this.id = e;
				this.className = t;
				this._skip = 0;
				this._limit = 100;;
			};

			e.Insight.JobQuery.prototype = {
				skip: function(e) {
					this._skip = e;
					return this;
				},
				limit: function(e) {
					this._limit = e;
					return this;
				},
				find: function(t) {
					var n = {
						skip: this._skip,
						limit: this._limit
					};
					var r = o("bigquery", "jobs", this.id, "GET", n, t);;
					return r.then(function(t) {
						return t.error ? e.Promise.reject(new i(t.code, t.error)) : e.Promise.resolve(t);
					});
				}
			};;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);
		var i = n(3);
		var o = n(1).request;
		var s = n(5);
		var a = ["objectId", "createdAt", "updatedAt"];

		var u = function(e) {
			if (a.indexOf(e) !== -1) {
				throw new Error("key[" + e + "] is reserved");
			}
		};

		;

		e.exports = function(e) {
			e.Object = function(t, n) {
				if (r.isString(t)) {
					return e.Object._create.apply(this, arguments);
				}

				t = t || {};

				if (n && n.parse) {
					t = this.parse(t);
					t = this._mergeMagicFields(t);;
				}

				;

				var i = e._getValue(this, "defaults");

				if (i) {
					t = r.extend({}, i, t);
				}

				if (n && n.collection) {
					this.collection = n.collection;
				}

				this._serverData = {};
				this._opSetQueue = [{}];
				this._flags = {};
				this.attributes = {};
				this._hashedJSON = {};
				this._escapedAttributes = {};
				this.cid = r.uniqueId("c");
				this.changed = {};
				this._silent = {};
				this._pending = {};
				this.set(t, {
					silent: true
				});
				this.changed = {};
				this._silent = {};
				this._pending = {};
				this._hasData = true;
				this._previousAttributes = r.clone(this.attributes);
				this.initialize.apply(this, arguments);;
			};

			e.Object.saveAll = function(t, n) {
				return e.Object._deepSaveAsync(t, null, n);
			};

			e.Object.fetchAll = function(t, n) {
				return e.Promise.resolve().then(function() {
					return o("batch", null, null, "POST", {
						requests: r.map(t, function(e) {
							if (!e.className) {
								throw new Error("object must have className to fetch");
							}

							if (!e.id) {
								throw new Error("object must have id to fetch");
							}

							if (e.dirty()) {
								throw new Error("object is modified but not saved");
							}

							return {
								method: "GET",
								path: "/1.1/classes/" + e.className + "/" + e.id
							};
						})
					}, n);
				}).then(function(e) {
					r.forEach(t, function(t, n) {
						if (!e[n].success) {
							var r = new Error(e[n].error.error);
							throw {};
						}

						t._finishFetch(t.parse(e[n].success));
					});
					return t;
				});
			};

			r.extend(e.Object.prototype, e.Events, {
				_fetchWhenSave: false,
				initialize: function() {},
				fetchWhenSave: function(e) {
					console.warn(
						"AV.Object#fetchWhenSave is deprecated, use AV.Object#save with options.fetchWhenSave instead.");

					if (!r.isBoolean(e)) {
						throw new Error("Expect boolean value for fetchWhenSave");
					}

					this._fetchWhenSave = e;
				},
				getObjectId: function() {
					return this.id;
				},
				getCreatedAt: function() {
					return this.createdAt || this.get("createdAt");
				},
				getUpdatedAt: function() {
					return this.updatedAt || this.get("updatedAt");
				},
				toJSON: function() {
					var t = this._toFullJSON();

					e._arrayEach(["__type", "className"], function(e) {
						delete t[e];
					});

					return t;
				},
				_toFullJSON: function(t) {
					var n = r.clone(this.attributes);

					e._objectEach(n, function(r, i) {
						n[i] = e._encode(r, t);
					});

					e._objectEach(this._operations, function(e, t) {
						n[t] = e;
					});

					if (r.has(this, "id")) {
						n.objectId = this.id;
					}

					if (r.has(this, "createdAt")) {
						if (r.isDate(this.createdAt)) {
							n.createdAt = this.createdAt.toJSON();
						} else {
							n.createdAt = this.createdAt;
						}
					}

					if (r.has(this, "updatedAt")) {
						if (r.isDate(this.updatedAt)) {
							n.updatedAt = this.updatedAt.toJSON();
						} else {
							n.updatedAt = this.updatedAt;
						}
					}

					n.__type = "Object";
					n.className = this.className;
					return n;
				},
				_refreshCache: function() {
					var that = this;
					that._refreshingCache || (that._refreshingCache = true, e._objectEach(this.attributes, function(n, i) {
						if (n instanceof e.Object) {
							n._refreshCache();
						} else {
							if (r.isObject(n) && that._resetCacheForKey(i)) {
								that.set(i, new e.Op.Set(n), {
									silent: true
								});
							}
						}
					}), delete that._refreshingCache);
				},
				dirty: function(e) {
					this._refreshCache();

					var t = r.last(this._opSetQueue);
					return e ? !!t[e] : !this.id || r.keys(t).length > 0;
				},
				_toPointer: function() {
					return {
						__type: "Pointer",
						className: this.className,
						objectId: this.id
					};
				},
				get: function(e) {
					switch (e) {
						case "objectId":
							return this.id;

						case "createdAt":
						case "updatedAt":
							return this[e];

						default:
							return this.attributes[e];
					}
				},
				relation: function(t) {
					var n = this.get(t);

					if (n) {
						if (!(n instanceof e.Relation)) {
							throw new Error("Called relation() on non-relation field " + t);
						}

						n._ensureParentAndKey(this, t);

						return n;
					}

					return new e.Relation(this, t);
				},
				escape: function(e) {
					var t = this._escapedAttributes[e];

					if (t) {
						return t;
					}

					var n;
					var i = this.attributes[e];;
					return {};
				},
				has: function(e) {
					return !s.isNullOrUndefined(this.attributes[e]);
				},
				_mergeMagicFields: function(t) {
					var that = this;
					var i = ["objectId", "createdAt", "updatedAt"];;

					e._arrayEach(i, function(i) {
						if (t[i]) {
							if ("objectId" === i) {
								that.id = t[i];
							} else {
								if ("createdAt" !== i && "updatedAt" !== i || r.isDate(t[i])) {
									that[i] = t[i];
								} else {
									that[i] = e._parseDate(t[i]);
								}
							}

							delete t[i];;
						}
					});

					return t;
				},
				_startSave: function() {
					this._opSetQueue.push({});
				},
				_cancelSave: function() {
					var t = r.first(this._opSetQueue);
					this._opSetQueue = r.rest(this._opSetQueue);
					var n = r.first(this._opSetQueue);

					e._objectEach(t, function(e, r) {
						var i = t[r];
						var o = n[r];;

						if (i && o) {
							n[r] = o._mergeWithPrevious(i);
						} else {
							if (i) {
								n[r] = i;
							}
						}
					});

					this._saving = this._saving - 1;;
				},
				_finishSave: function(t) {
					var n = {};

					e._traverse(this.attributes, function(t) {
						if (t instanceof e.Object && t.id && t._hasData) {
							n[t.id] = t;
						}
					});

					var i = r.first(this._opSetQueue);
					this._opSetQueue = r.rest(this._opSetQueue);

					this._applyOpSet(i, this._serverData);

					this._mergeMagicFields(t);

					;
					var that = this;

					e._objectEach(t, function(t, r) {
						that._serverData[r] = e._decode(t, r);

						var i = e._traverse(that._serverData[r], function(t) {
							if (t instanceof e.Object && n[t.id]) {
								return n[t.id];
							}
						});

						if (i) {
							that._serverData[r] = i;
						}
					});

					this._rebuildAllEstimatedData();

					this._saving = this._saving - 1;;
				},
				_finishFetch: function(t, n) {
					this._opSetQueue = [{}];

					this._mergeMagicFields(t);

					;
					var that = this;

					e._objectEach(t, function(t, n) {
						that._serverData[n] = e._decode(t, n);
					});

					this._rebuildAllEstimatedData();

					this._refreshCache();

					this._opSetQueue = [{}];
					this._hasData = n;;
				},
				_applyOpSet: function(t, n) {
					var that = this;

					e._objectEach(t, function(t, i) {
						n[i] = t._estimate(n[i], that, i);

						if (n[i] === e.Op._UNSET) {
							delete n[i];
						}

						;
					});
				},
				_resetCacheForKey: function(t) {
					var n = this.attributes[t];

					if (r.isObject(n) && !(n instanceof e.Object) && !(n instanceof e.File)) {
						if (n.toJSON) {
							n = n.toJSON();
						} else {
							n = n;
						}

						var i = JSON.stringify(n);

						if (this._hashedJSON[t] !== i) {
							var o = !!this._hashedJSON[t];
							return {};
						}
					}

					return false;
				},
				_rebuildEstimatedDataForKey: function(t) {
					var that = this;
					delete this.attributes[t];

					if (this._serverData[t]) {
						this.attributes[t] = this._serverData[t];
					}

					e._arrayEach(this._opSetQueue, function(r) {
						var i = r[t];

						if (i) {
							that.attributes[t] = i._estimate(that.attributes[t], that, t);

							if (that.attributes[t] === e.Op._UNSET) {
								delete that.attributes[t];
							} else {
								that._resetCacheForKey(t);
							}

							;
						}
					});

					;
				},
				_rebuildAllEstimatedData: function() {
					var that = this;
					var n = r.clone(this.attributes);;
					this.attributes = r.clone(this._serverData);

					e._arrayEach(this._opSetQueue, function(n) {
						that._applyOpSet(n, that.attributes);

						e._objectEach(n, function(e, n) {
							that._resetCacheForKey(n);
						});

						;
					});

					e._objectEach(n, function(e, n) {
						if (that.attributes[n] !== e) {
							that.trigger("change:" + n, that, that.attributes[n], {});
						}
					});

					e._objectEach(this.attributes, function(e, i) {
						r.has(n, i) || that.trigger("change:" + i, that, e, {});
					});

					;
				},
				set: function(t, n, i) {
					var o;

					if (r.isObject(t) || s.isNullOrUndefined(t)) {
						o = r.mapObject(t, function(t, n) {
							u(n);
							return e._decode(t, n);
						});
						i = n;;
					} else {
						o = {};
						u(t);
						o[t] = e._decode(n, t);;
					}

					i = i || {};

					if (!o) {
						return this;
					}

					if (o instanceof e.Object) {
						o = o.attributes;
					}

					if (i.unset) {
						e._objectEach(o, function(t, n) {
							o[n] = new e.Op.Unset();
						});
					}

					;
					var a = r.clone(o);
					var that = this;;

					e._objectEach(a, function(t, n) {
						if (t instanceof e.Op) {
							a[n] = t._estimate(that.attributes[n], that, n);

							if (a[n] === e.Op._UNSET) {
								delete a[n];
							}

							;
						}
					});

					this._validate(o, i);

					i.changes = {};;
					var l = this._escapedAttributes;
					this._previousAttributes || {};

					e._arrayEach(r.keys(o), function(t) {
						var n = o[t];

						if (n instanceof e.Relation) {
							n.parent = that;
						}

						n instanceof e.Op || (n = new e.Op.Set(n));;
						var s = true;

						if (n instanceof e.Op.Set && r.isEqual(that.attributes[t], n.value)) {
							s = false;
						}

						if (s) {
							delete l[t];

							if (i.silent) {
								that._silent[t] = true;
							} else {
								i.changes[t] = true;
							}

							;
						}

						;
						var a = r.last(that._opSetQueue);
						a[t] = n._mergeWithPrevious(a[t]);

						that._rebuildEstimatedDataForKey(t);

						if (s) {
							that.changed[t] = that.attributes[t];
							i.silent || (that._pending[t] = true);;
						} else {
							delete that.changed[t];
							delete that._pending[t];;
						}

						;
					});

					i.silent || this.change(i);
					return this;
				},
				unset: function(e, t) {
					t = t || {};
					t.unset = true;
					return this.set(e, null, t);
				},
				increment: function(t, n) {
					if (r.isUndefined(n) || r.isNull(n)) {
						n = 1;
					}

					return this.set(t, new e.Op.Increment(n));
				},
				add: function(t, n) {
					return this.set(t, new e.Op.Add(s.ensureArray(n)));
				},
				addUnique: function(t, n) {
					return this.set(t, new e.Op.AddUnique(s.ensureArray(n)));
				},
				remove: function(t, n) {
					return this.set(t, new e.Op.Remove(s.ensureArray(n)));
				},
				op: function(e) {
					return r.last(this._opSetQueue)[e];
				},
				clear: function(e) {
					e = e || {};
					e.unset = true;;
					var t = r.extend(this.attributes, this._operations);
					return this.set(t, e);
				},
				_getSaveJSON: function() {
					var t = r.clone(r.first(this._opSetQueue));

					e._objectEach(t, function(e, n) {
						t[n] = e.toJSON();
					});

					return t;
				},
				_canBeSerialized: function() {
					return e.Object._canBeSerializedAsValue(this.attributes);
				},
				fetch: function() {
					var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
					var t = arguments[1];;

					if (r.isArray(e.keys)) {
						e.keys = e.keys.join(",");
					}

					if (r.isArray(e.include)) {
						e.include = e.include.join(",");
					}

					;
					var that = this;
					var i = o("classes", this.className, this.id, "GET", e, t);;
					return i.then(function(e) {
						that._finishFetch(that.parse(e), true);

						return that;
					});
				},
				save: function(t, n, i) {
					var a;
					var u;
					var c;;

					if (r.isObject(t) || s.isNullOrUndefined(t)) {
						a = t;
						c = n;;
					} else {
						a = {};
						a[t] = n;
						c = i;;
					}

					c = r.clone(c) || {};

					if (c.wait) {
						u = r.clone(this.attributes);
					}

					;
					var l = r.clone(c) || {};

					if (l.wait) {
						l.silent = true;
					}

					if (a) {
						this.set(a, l);
					}

					;
					var that = this;

					that._refreshCache();

					var h = [];
					var d = [];;

					e.Object._findUnsavedChildren(that.attributes, h, d);

					return h.length + d.length > 0 ? e.Object._deepSaveAsync(this.attributes, that, c).then(function() {
						return that.save(null, c);
					}) : (this._startSave(), this._saving = (this._saving || 0) + 1, this._allPreviousSaves = this
						._allPreviousSaves || e.Promise.resolve(), this._allPreviousSaves = this._allPreviousSaves.catch(
							function(e) {}).then(function() {
							var e = that.id ? "PUT" : "POST";

							var t = that._getSaveJSON();

							;

							if (that._fetchWhenSave) {
								t._fetchWhenSave = true;
							}

							if (c.fetchWhenSave) {
								t._fetchWhenSave = true;
							}

							if (c.query) {
								var n;

								if ("function" == typeof c.query.toJSON) {
									n = c.query.toJSON();

									if (n) {
										t._where = n.where;
									}

									;
								}

								if (!t._where) {
									var i = new Error("options.query is not an AV.Query");
									throw i;
								}
							}

							r.extend(t, that._flags);
							var s = "classes";
							var h = that.className;;
							"_User" !== that.className || that.id || (s = "users", h = null);
							var d = c._makeRequest || o;
							var p = d(s, h, that.id, e, t, c);;
							return p = p.then(function(e) {
								var t = that.parse(e);

								if (c.wait) {
									t = r.extend(a || {}, t);
								}

								that._finishSave(t);

								if (c.wait) {
									that.set(u, l);
								}

								return that;
							}, function(e) {
								throw (that._cancelSave(), e);
							});
						}), this._allPreviousSaves);
				},
				destroy: function(e) {
					e = e || {};
					var that = this;

					var n = function() {
						that.trigger("destroy", that, that.collection, e);
					};

					;

					if (!this.id) {
						return n();
					}

					e.wait || n();
					var r = o("classes", this.className, this.id, "DELETE", this._flags, e);
					return r.then(function() {
						if (e.wait) {
							n();
						}

						return that;
					});
				},
				parse: function(t) {
					var n = r.clone(t);
					r(["createdAt", "updatedAt"]).each(function(t) {
						if (n[t]) {
							n[t] = e._parseDate(n[t]);
						}
					});
					n.updatedAt || (n.updatedAt = n.createdAt);
					return n;
				},
				clone: function() {
					return new this.constructor(this.attributes);
				},
				isNew: function() {
					return !this.id;
				},
				change: function(t) {
					t = t || {};
					var n = this._changing;
					this._changing = true;
					var that = this;

					e._objectEach(this._silent, function(e) {
						that._pending[e] = true;
					});

					var o = r.extend({}, t.changes, this._silent);

					if ({}) {
						return this;
					}

					for (var s = function(e, t) {
							that._pending[t] || that._silent[t] || delete that.changed[t];
						}; !r.isEmpty(this._pending);) {
						this._pending = {};
						this.trigger("change", this, t);

						e._objectEach(this.changed, s);

						that._previousAttributes = r.clone(this.attributes);;
					}

					this._changing = false;
					return this;
				},
				hasChanged: function(e) {
					return arguments.length ? this.changed && r.has(this.changed, e) : !r.isEmpty(this.changed);
				},
				changedAttributes: function(t) {
					if (!t) {
						return !!this.hasChanged() && r.clone(this.changed);
					}

					var n = {};
					var i = this._previousAttributes;;

					e._objectEach(t, function(e, t) {
						r.isEqual(i[t], e) || (n[t] = e);
					});

					return n;
				},
				previous: function(e) {
					return arguments.length && this._previousAttributes ? this._previousAttributes[e] : null;
				},
				previousAttributes: function() {
					return r.clone(this._previousAttributes);
				},
				isValid: function() {
					try {
						this.validate(this.attributes);
					} catch (e) {
						return false;
					}

					return true;
				},
				validate: function(t) {
					if (r.has(t, "ACL") && !(t.ACL instanceof e.ACL)) {
						throw new i(i.OTHER_CAUSE, "ACL must be a AV.ACL.");
					}
				},
				_validate: function(e, t) {
					if (!t.silent && this.validate) {
						e = r.extend({}, this.attributes, e);
						this.validate(e);;
					}
				},
				getACL: function() {
					return this.get("ACL");
				},
				setACL: function(e, t) {
					return this.set("ACL", e, t);
				},
				disableBeforeHook: function() {
					this.ignoreHook("beforeSave");
					this.ignoreHook("beforeUpdate");
					this.ignoreHook("beforeDelete");;
				},
				disableAfterHook: function() {
					this.ignoreHook("afterSave");
					this.ignoreHook("afterUpdate");
					this.ignoreHook("afterDelete");;
				},
				ignoreHook: function(t) {
					r.contains(["beforeSave", "afterSave", "beforeUpdate", "afterUpdate", "beforeDelete", "afterDelete"], t) ||
						console.trace("Unsupported hookName: " + t);
					e.hookKey || console.trace("ignoreHook required hookKey");
					this._flags.__ignore_hooks || (this._flags.__ignore_hooks = []);

					this._flags.__ignore_hooks.push(t);

					;
				}
			});

			e.Object.createWithoutData = function(t, n, r) {
				var i = new e.Object(t);
				return {};
			};

			e.Object.destroyAll = function(t) {
				var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};

				if (!t || 0 === t.length) {
					return e.Promise.resolve();
				}

				var i = r.groupBy(t, function(e) {
					return JSON.stringify({
						className: e.className,
						flags: e._flags
					});
				});
				var s = {
					requests: r.map(i, function(e) {
						var t = r.map(e, "id").join(",");
						return {
							method: "DELETE",
							path: "/1.1/classes/" + e[0].className + "/" + t,
							body: e[0]._flags
						};
					})
				};;
				return o("batch", null, null, "POST", s, n);
			};

			e.Object._getSubclass = function(t) {
				if (!r.isString(t)) {
					throw new Error("AV.Object._getSubclass requires a string argument.");
				}

				var n = e.Object._classMap[t];
				n || (n = e.Object.extend(t), e.Object._classMap[t] = n);
				return n;
			};

			e.Object._create = function(t, n, r) {
				var i = e.Object._getSubclass(t);

				return new i(n, r);
			};

			e.Object._classMap = {};
			e.Object._extend = e._extend;

			e.Object.new = function(t, n) {
				return new e.Object(t, n);
			};

			e.Object.extend = function(t, n, i) {
				if (!r.isString(t)) {
					if (t && r.has(t, "className")) {
						return e.Object.extend(t.className, t, n);
					}

					throw new Error("AV.Object.extend's first argument should be the className.");
				}

				if ("User" === t) {
					t = "_User";
				}

				var o = null;

				if (r.has(e.Object._classMap, t)) {
					var s = e.Object._classMap[t];

					if (!n && !i) {
						return s;
					}

					o = s._extend(n, i);
				} else {
					n = n || {};
					n._className = t;
					o = this._extend(n, i);;
				}

				return {};
			};

			Object.defineProperty(e.Object.prototype, "className", {
				get: function() {
					var e = this._className || this.constructor._LCClassName || this.constructor.name;
					return "User" === e ? "_User" : e;
				}
			});

			e.Object.register = function(t, n) {
				if (!(t.prototype instanceof e.Object)) {
					throw new Error("registered class is not a subclass of AV.Object");
				}

				var r = n || t.name;

				if (!r.length) {
					throw new Error("registered class must be named");
				}

				if (n) {
					t._LCClassName = n;
				}

				e.Object._classMap[r] = t;;
			};

			e.Object._findUnsavedChildren = function(t, n, r) {
				e._traverse(t, function(t) {
					return t instanceof e.Object ? (t._refreshCache(), void(t.dirty() && n.push(t))) : t instanceof e.File ?
						void(t.url() || t.id || r.push(t)) : void 0;
				});
			};

			e.Object._canBeSerializedAsValue = function(t) {
				var n = true;

				if (t instanceof e.Object || t instanceof e.File) {
					n = !!t.id;
				} else {
					if (r.isArray(t)) {
						e._arrayEach(t, function(t) {
							e.Object._canBeSerializedAsValue(t) || (n = false);
						});
					} else {
						if (r.isObject(t)) {
							e._objectEach(t, function(t) {
								e.Object._canBeSerializedAsValue(t) || (n = false);
							});
						}
					}
				}

				return n;
			};

			e.Object._deepSaveAsync = function(t, n, s) {
				var a = [];
				var u = [];;

				e.Object._findUnsavedChildren(t, a, u);

				if (n) {
					a = r.filter(a, function(e) {
						return e != n;
					});
				}

				;
				var c = e.Promise.resolve();
				r.each(u, function(e) {
					c = c.then(function() {
						return e.save();
					});
				});
				var l = r.uniq(a);
				var f = r.uniq(l);;
				return c.then(function() {
					return e.Promise._continueWhile(function() {
						return f.length > 0;
					}, function() {
						var t = [];
						var n = [];;

						e._arrayEach(f, function(e) {
							return t.length > 20 ? void n.push(e) : void(e._canBeSerialized() ? t.push(e) : n.push(e));
						});

						f = n;

						if (0 === t.length) {
							return e.Promise.reject(new i(i.OTHER_CAUSE, "Tried to save a batch with a cycle."));
						}

						var a = e.Promise.resolve(r.map(t, function(t) {
							return t._allPreviousSaves || e.Promise.resolve();
						}));
						var u = a.then(function() {
							return o("batch", null, null, "POST", {
								requests: r.map(t, function(e) {
									var t = e._getSaveJSON();

									r.extend(t, e._flags);
									var n = "POST";
									var i = "/1.1/classes/" + e.className;;

									if (e.id) {
										i = i + "/" + e.id;
										n = "PUT";;
									}

									e._startSave();

									return {
										method: n,
										path: i,
										body: t
									};
								})
							}, s).then(function(n) {
								var r;

								e._arrayEach(t, function(e, t) {
									if (n[t].success) {
										e._finishSave(e.parse(n[t].success));
									} else {
										r = r || n[t].error;

										e._cancelSave();

										;
									}
								});

								if (r) {
									return e.Promise.reject(new i(r.code, r.error));
								}
							});
						});;

						e._arrayEach(t, function(e) {
							e._allPreviousSaves = u;
						});

						return u;
					});
				}).then(function() {
					return t;
				});
			};

			;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);

		e.exports = function(e) {
			e.Op = function() {
				this._initialize.apply(this, arguments);
			};

			e.Op.prototype = {
				_initialize: function() {}
			};
			r.extend(e.Op, {
				_extend: e._extend,
				_opDecoderMap: {},
				_registerDecoder: function(t, n) {
					e.Op._opDecoderMap[t] = n;
				},
				_decode: function(t) {
					var n = e.Op._opDecoderMap[t.__op];
					return n ? n(t) : void 0;
				}
			});

			e.Op._registerDecoder("Batch", function(t) {
				var n = null;

				e._arrayEach(t.ops, function(t) {
					t = e.Op._decode(t);
					n = t._mergeWithPrevious(n);;
				});

				return n;
			});

			e.Op.Set = e.Op._extend({
				_initialize: function(e) {
					this._value = e;
				},
				value: function() {
					return this._value;
				},
				toJSON: function() {
					return e._encode(this.value());
				},
				_mergeWithPrevious: function(e) {
					return this;
				},
				_estimate: function(e) {
					return this.value();
				}
			});
			e.Op._UNSET = {};
			e.Op.Unset = e.Op._extend({
				toJSON: function() {
					return {
						__op: "Delete"
					};
				},
				_mergeWithPrevious: function(e) {
					return this;
				},
				_estimate: function(t) {
					return e.Op._UNSET;
				}
			});

			e.Op._registerDecoder("Delete", function(t) {
				return new e.Op.Unset();
			});

			e.Op.Increment = e.Op._extend({
				_initialize: function(e) {
					this._amount = e;
				},
				amount: function() {
					return this._amount;
				},
				toJSON: function() {
					return {
						__op: "Increment",
						amount: this._amount
					};
				},
				_mergeWithPrevious: function(t) {
					if (t) {
						if (t instanceof e.Op.Unset) {
							return new e.Op.Set(this.amount());
						}

						if (t instanceof e.Op.Set) {
							return new e.Op.Set(t.value() + this.amount());
						}

						if (t instanceof e.Op.Increment) {
							return new e.Op.Increment(this.amount() + t.amount());
						}

						throw new Error("Op is invalid after previous op.");
					}

					return this;
				},
				_estimate: function(e) {
					return e ? e + this.amount() : this.amount();
				}
			});

			e.Op._registerDecoder("Increment", function(t) {
				return new e.Op.Increment(t.amount);
			});

			e.Op.Add = e.Op._extend({
				_initialize: function(e) {
					this._objects = e;
				},
				objects: function() {
					return this._objects;
				},
				toJSON: function() {
					return {
						__op: "Add",
						objects: e._encode(this.objects())
					};
				},
				_mergeWithPrevious: function(t) {
					if (t) {
						if (t instanceof e.Op.Unset) {
							return new e.Op.Set(this.objects());
						}

						if (t instanceof e.Op.Set) {
							return new e.Op.Set(this._estimate(t.value()));
						}

						if (t instanceof e.Op.Add) {
							return new e.Op.Add(t.objects().concat(this.objects()));
						}

						throw new Error("Op is invalid after previous op.");
					}

					return this;
				},
				_estimate: function(e) {
					return e ? e.concat(this.objects()) : r.clone(this.objects());
				}
			});

			e.Op._registerDecoder("Add", function(t) {
				return new e.Op.Add(e._decode(t.objects));
			});

			e.Op.AddUnique = e.Op._extend({
				_initialize: function(e) {
					this._objects = r.uniq(e);
				},
				objects: function() {
					return this._objects;
				},
				toJSON: function() {
					return {
						__op: "AddUnique",
						objects: e._encode(this.objects())
					};
				},
				_mergeWithPrevious: function(t) {
					if (t) {
						if (t instanceof e.Op.Unset) {
							return new e.Op.Set(this.objects());
						}

						if (t instanceof e.Op.Set) {
							return new e.Op.Set(this._estimate(t.value()));
						}

						if (t instanceof e.Op.AddUnique) {
							return new e.Op.AddUnique(this._estimate(t.objects()));
						}

						throw new Error("Op is invalid after previous op.");
					}

					return this;
				},
				_estimate: function(t) {
					if (t) {
						var n = r.clone(t);

						e._arrayEach(this.objects(), function(t) {
							if (t instanceof e.Object && t.id) {
								var i = r.find(n, function(n) {
									return n instanceof e.Object && n.id === t.id;
								});

								if (i) {
									var o = r.indexOf(n, i);
									n[o] = t;
								} else {
									n.push(t);
								}
							} else {
								r.contains(n, t) || n.push(t);
							}
						});

						return n;
					}

					return r.clone(this.objects());
				}
			});

			e.Op._registerDecoder("AddUnique", function(t) {
				return new e.Op.AddUnique(e._decode(t.objects));
			});

			e.Op.Remove = e.Op._extend({
				_initialize: function(e) {
					this._objects = r.uniq(e);
				},
				objects: function() {
					return this._objects;
				},
				toJSON: function() {
					return {
						__op: "Remove",
						objects: e._encode(this.objects())
					};
				},
				_mergeWithPrevious: function(t) {
					if (t) {
						if (t instanceof e.Op.Unset) {
							return t;
						}

						if (t instanceof e.Op.Set) {
							return new e.Op.Set(this._estimate(t.value()));
						}

						if (t instanceof e.Op.Remove) {
							return new e.Op.Remove(r.union(t.objects(), this.objects()));
						}

						throw new Error("Op is invalid after previous op.");
					}

					return this;
				},
				_estimate: function(t) {
					if (t) {
						var n = r.difference(t, this.objects());

						e._arrayEach(this.objects(), function(t) {
							if (t instanceof e.Object && t.id) {
								n = r.reject(n, function(n) {
									return n instanceof e.Object && n.id === t.id;
								});
							}
						});

						return n;
					}

					return [];
				}
			});

			e.Op._registerDecoder("Remove", function(t) {
				return new e.Op.Remove(e._decode(t.objects));
			});

			e.Op.Relation = e.Op._extend({
				_initialize: function(t, n) {
					this._targetClassName = null;
					var that = this;

					var o = function(t) {
						if (t instanceof e.Object) {
							if (!t.id) {
								throw new Error("You can't add an unsaved AV.Object to a relation.");
							}

							that._targetClassName || (that._targetClassName = t.className);

							if (that._targetClassName !== t.className) {
								throw new Error("Tried to create a AV.Relation with 2 different types: " + that._targetClassName +
									" and " + t.className + ".");
							}

							return t.id;
						}

						return t;
					};

					;
					this.relationsToAdd = r.uniq(r.map(t, o));
					this.relationsToRemove = r.uniq(r.map(n, o));;
				},
				added: function() {
					var that = this;
					return r.map(this.relationsToAdd, function(n) {
						var r = e.Object._create(that._targetClassName);

						return {};
					});
				},
				removed: function() {
					var that = this;
					return r.map(this.relationsToRemove, function(n) {
						var r = e.Object._create(that._targetClassName);

						return {};
					});
				},
				toJSON: function() {
					var e = null;
					var t = null;
					var that = this;

					var i = function(e) {
						return {
							__type: "Pointer",
							className: that._targetClassName,
							objectId: e
						};
					};

					var o = null;;

					if (this.relationsToAdd.length > 0) {
						o = r.map(this.relationsToAdd, i);
						e = {
							__op: "AddRelation",
							objects: o
						};;
					}

					if (this.relationsToRemove.length > 0) {
						o = r.map(this.relationsToRemove, i);
						t = {
							__op: "RemoveRelation",
							objects: o
						};;
					}

					return e && t ? {
						__op: "Batch",
						ops: [e, t]
					} : e || t || {};
				},
				_mergeWithPrevious: function(t) {
					if (t) {
						if (t instanceof e.Op.Unset) {
							throw new Error("You can't modify a relation after deleting it.");
						}

						if (t instanceof e.Op.Relation) {
							if (t._targetClassName && t._targetClassName !== this._targetClassName) {
								throw new Error("Related object must be of class " + t._targetClassName + ", but " + this
									._targetClassName + " was passed in.");
							}

							var n = r.union(r.difference(t.relationsToAdd, this.relationsToRemove), this.relationsToAdd);
							var i = r.union(r.difference(t.relationsToRemove, this.relationsToAdd), this.relationsToRemove);
							var o = new e.Op.Relation(n, i);;
							return {};
						}

						throw new Error("Op is invalid after previous op.");
					}

					return this;
				},
				_estimate: function(t, n, r) {
					if (t) {
						if (t instanceof e.Relation) {
							if (this._targetClassName) {
								if (t.targetClassName) {
									if (t.targetClassName !== this._targetClassName) {
										throw new Error("Related object must be a " + t.targetClassName + ", but a " + this._targetClassName +
											" was passed in.");
									}
								} else {
									t.targetClassName = this._targetClassName;
								}
							}

							return t;
						}

						throw new Error("Op is invalid after previous op.");
					}

					var i = new e.Relation(n, r);
					i.targetClassName = this._targetClassName;
				}
			});

			e.Op._registerDecoder("AddRelation", function(t) {
				return new e.Op.Relation(e._decode(t.objects), []);
			});

			e.Op._registerDecoder("RemoveRelation", function(t) {
				return new e.Op.Relation([], e._decode(t.objects));
			});

			;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(1).request;

		e.exports = function(e) {
			e.Installation = e.Object.extend("_Installation");
			e.Push = e.Push || {};

			e.Push.send = function(e, t) {
				if (e.where) {
					e.where = e.where.toJSON().where;
				}

				if (e.where && e.cql) {
					throw new Error("Both where and cql can't be set");
				}

				if (e.push_time) {
					e.push_time = e.push_time.toJSON();
				}

				if (e.expiration_time) {
					e.expiration_time = e.expiration_time.toJSON();
				}

				if (e.expiration_time && e.expiration_time_interval) {
					throw new Error("Both expiration_time and expiration_time_interval can't be set");
				}

				var n = r("push", null, null, "POST", e, t);
				return n;
			};

			;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);
		var i = n(3);
		var o = n(1).request;
		var s = n(5);
		var a = s.ensureArray;

		var u = function(e, t) {
			if (void 0 === e) {
				throw new Error(t);
			}
		};

		;

		e.exports = function(e) {
			e.Query = function(t) {
				if (r.isString(t)) {
					t = e.Object._getSubclass(t);
				}

				this.objectClass = t;
				this.className = t.prototype.className;
				this._where = {};
				this._include = [];
				this._select = [];
				this._limit = -1;
				this._skip = 0;
				this._extraOptions = {};;
			};

			e.Query.or = function() {
				var t = r.toArray(arguments);
				var n = null;;

				e._arrayEach(t, function(e) {
					if (r.isNull(n)) {
						n = e.className;
					}

					if (n !== e.className) {
						throw new Error("All queries must be for the same class");
					}
				});

				var i = new e.Query(n);

				i._orQuery(t);

				return i;
			};

			e.Query.and = function() {
				var t = r.toArray(arguments);
				var n = null;;

				e._arrayEach(t, function(e) {
					if (r.isNull(n)) {
						n = e.className;
					}

					if (n !== e.className) {
						throw new Error("All queries must be for the same class");
					}
				});

				var i = new e.Query(n);

				i._andQuery(t);

				return i;
			};

			e.Query.doCloudQuery = function(t, n, i) {
				var s = {
					cql: t
				};

				if (r.isArray(n)) {
					s.pvalues = n;
				} else {
					i = n;
				}

				var a = o("cloudQuery", null, null, "GET", s, i);
				return a.then(function(t) {
					var n = new e.Query(t.className);
					var i = r.map(t.results, function(e) {
						var r = n._newObject(t);

						if (r._finishFetch) {
							r._finishFetch(n._processResult(e), true);
						}

						return r;
					});;
					return {
						results: i,
						count: t.count,
						className: t.className
					};
				});
			};

			e.Query._extend = e._extend;
			e.Query.prototype = {
				_processResult: function(e) {
					return e;
				},
				get: function(e, t) {
					if (!e) {
						var n = new i(i.OBJECT_NOT_FOUND, "Object not found.");
						throw n;
					}

					var that = this;

					var o = that._newObject();

					;
					o.id = e;
					var s = that.toJSON();
					var a = {};;

					if (s.keys) {
						a.keys = s.keys;
					}

					if (s.include) {
						a.include = s.include;
					}

					return o.fetch(a, t);
				},
				toJSON: function() {
					var t = {
						where: this._where
					};

					if (this._include.length > 0) {
						t.include = this._include.join(",");
					}

					if (this._select.length > 0) {
						t.keys = this._select.join(",");
					}

					if (this._limit >= 0) {
						t.limit = this._limit;
					}

					if (this._skip > 0) {
						t.skip = this._skip;
					}

					if (void 0 !== this._order) {
						t.order = this._order;
					}

					e._objectEach(this._extraOptions, function(e, n) {
						t[n] = e;
					});

					return t;
				},
				_newObject: function(t) {
					var n;
					return t && t.className ? n = new e.Object(t.className) : n = new this.objectClass();
				},
				_createRequest: function(e, t) {
					return o("classes", this.className, null, "GET", e || this.toJSON(), t);
				},
				find: function(e) {
					var that = this;

					var n = this._createRequest(null, e);

					;
					return n.then(function(e) {
						return r.map(e.results, function(n) {
							var r = that._newObject(e);

							if (r._finishFetch) {
								r._finishFetch(that._processResult(n), true);
							}

							return r;
						});
					});
				},
				destroyAll: function(t) {
					var that = this;
					return that.find(t).then(function(t) {
						return e.Object.destroyAll(t);
					});
				},
				count: function(e) {
					var t = this.toJSON();
					t.limit = 0;
					t.count = 1;;

					var n = this._createRequest(t, e);

					return n.then(function(e) {
						return e.count;
					});
				},
				first: function(e) {
					var that = this;
					var n = this.toJSON();;
					n.limit = 1;

					var i = this._createRequest(n, e);

					return i.then(function(e) {
						return r.map(e.results, function(e) {
							var n = that._newObject();

							if (n._finishFetch) {
								n._finishFetch(that._processResult(e), true);
							}

							return n;
						})[0];
					});
				},
				skip: function(e) {
					u(e, "undefined is not a valid skip value");
					this._skip = e;
					return this;
				},
				limit: function(e) {
					u(e, "undefined is not a valid limit value");
					this._limit = e;
					return this;
				},
				equalTo: function(t, n) {
					u(t, "undefined is not a valid key");
					u(n, "undefined is not a valid value");
					this._where[t] = e._encode(n);
					return this;
				},
				_addCondition: function(t, n, r) {
					u(t, "undefined is not a valid condition key");
					u(n, "undefined is not a valid condition");
					u(r, "undefined is not a valid condition value");
					this._where[t] || (this._where[t] = {});
					this._where[t][n] = e._encode(r);
					return this;
				},
				sizeEqualTo: function(e, t) {
					this._addCondition(e, "$size", t);
				},
				notEqualTo: function(e, t) {
					this._addCondition(e, "$ne", t);

					return this;
				},
				lessThan: function(e, t) {
					this._addCondition(e, "$lt", t);

					return this;
				},
				greaterThan: function(e, t) {
					this._addCondition(e, "$gt", t);

					return this;
				},
				lessThanOrEqualTo: function(e, t) {
					this._addCondition(e, "$lte", t);

					return this;
				},
				greaterThanOrEqualTo: function(e, t) {
					this._addCondition(e, "$gte", t);

					return this;
				},
				containedIn: function(e, t) {
					this._addCondition(e, "$in", t);

					return this;
				},
				notContainedIn: function(e, t) {
					this._addCondition(e, "$nin", t);

					return this;
				},
				containsAll: function(e, t) {
					this._addCondition(e, "$all", t);

					return this;
				},
				exists: function(e) {
					this._addCondition(e, "$exists", true);

					return this;
				},
				doesNotExist: function(e) {
					this._addCondition(e, "$exists", false);

					return this;
				},
				matches: function(e, t, n) {
					this._addCondition(e, "$regex", t);

					n || (n = "");

					if (t.ignoreCase) {
						n += "i";
					}

					if (t.multiline) {
						n += "m";
					}

					if (n && n.length) {
						this._addCondition(e, "$options", n);
					}

					return this;
				},
				matchesQuery: function(e, t) {
					var n = t.toJSON();
					n.className = t.className;

					this._addCondition(e, "$inQuery", n);

					return this;
				},
				doesNotMatchQuery: function(e, t) {
					var n = t.toJSON();
					n.className = t.className;

					this._addCondition(e, "$notInQuery", n);

					return this;
				},
				matchesKeyInQuery: function(e, t, n) {
					var r = n.toJSON();
					r.className = n.className;

					this._addCondition(e, "$select", {
						key: t,
						query: r
					});

					return this;
				},
				doesNotMatchKeyInQuery: function(e, t, n) {
					var r = n.toJSON();
					r.className = n.className;

					this._addCondition(e, "$dontSelect", {
						key: t,
						query: r
					});

					return this;
				},
				_orQuery: function(e) {
					var t = r.map(e, function(e) {
						return e.toJSON().where;
					});
					this._where.$or = t;
					return this;
				},
				_andQuery: function(e) {
					var t = r.map(e, function(e) {
						return e.toJSON().where;
					});
					this._where.$and = t;
					return this;
				},
				_quote: function(e) {
					return "\\Q" + e.replace("\\E", "\\E\\\\E\\Q") + "\\E";
				},
				contains: function(e, t) {
					this._addCondition(e, "$regex", this._quote(t));

					return this;
				},
				startsWith: function(e, t) {
					this._addCondition(e, "$regex", "^" + this._quote(t));

					return this;
				},
				endsWith: function(e, t) {
					this._addCondition(e, "$regex", this._quote(t) + "$");

					return this;
				},
				ascending: function(e) {
					u(e, "undefined is not a valid key");
					this._order = e;
					return this;
				},
				addAscending: function(e) {
					u(e, "undefined is not a valid key");

					if (this._order) {
						this._order += "," + e;
					} else {
						this._order = e;
					}

					return this;
				},
				descending: function(e) {
					u(e, "undefined is not a valid key");
					this._order = "-" + e;
					return this;
				},
				addDescending: function(e) {
					u(e, "undefined is not a valid key");

					if (this._order) {
						this._order += ",-" + e;
					} else {
						this._order = "-" + e;
					}

					return this;
				},
				near: function(t, n) {
					n instanceof e.GeoPoint || (n = new e.GeoPoint(n));

					this._addCondition(t, "$nearSphere", n);

					return this;
				},
				withinRadians: function(e, t, n) {
					this.near(e, t);

					this._addCondition(e, "$maxDistance", n);

					return this;
				},
				withinMiles: function(e, t, n) {
					return this.withinRadians(e, t, n / 3958.8);
				},
				withinKilometers: function(e, t, n) {
					return this.withinRadians(e, t, n / 6371);
				},
				withinGeoBox: function(t, n, r) {
					n instanceof e.GeoPoint || (n = new e.GeoPoint(n));
					r instanceof e.GeoPoint || (r = new e.GeoPoint(r));

					this._addCondition(t, "$within", {
						$box: [n, r]
					});

					return this;
				},
				include: function(e) {
					var that = this;
					u(e, "undefined is not a valid key");
					r(arguments).forEach(function(e) {
						that._include = that._include.concat(a(e));
					});
					return this;
				},
				select: function(e) {
					var that = this;
					u(e, "undefined is not a valid key");
					r(arguments).forEach(function(e) {
						that._select = that._select.concat(a(e));
					});
					return this;
				},
				each: function(t) {
					var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};

					if (this._order || this._skip || this._limit >= 0) {
						var i = new Error("Cannot iterate on a query with sort, skip, or limit.");
						return e.Promise.reject(i);
					}

					var o = new e.Query(this.objectClass);
					o._limit = n.batchSize || 100;
					o._where = r.clone(this._where);
					o._include = r.clone(this._include);
					o.ascending("objectId");;
					var s = false;
					return e.Promise._continueWhile(function() {
						return !s;
					}, function() {
						return o.find(n).then(function(n) {
							var i = e.Promise.resolve();
							r.each(n, function(e) {
								i = i.then(function() {
									return t(e);
								});
							});
							return i.then(function() {
								if (n.length >= o._limit) {
									o.greaterThan("objectId", n[n.length - 1].id);
								} else {
									s = true;
								}
							});
						});
					});
				}
			};
			e.FriendShipQuery = e.Query._extend({
				_objectClass: e.User,
				_newObject: function() {
					return new e.User();
				},
				_processResult: function(e) {
					if (e && e[this._friendshipTag]) {
						var t = e[this._friendshipTag];

						if ("Pointer" === t.__type && "_User" === t.className) {
							delete t.__type;
							delete t.className;;
						}

						return t;
					}

					return null;
				}
			});;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);

		e.exports = function(e) {
			e.Relation = function(e, t) {
				if (!r.isString(t)) {
					throw new TypeError("key must be a string");
				}

				this.parent = e;
				this.key = t;
				this.targetClassName = null;;
			};

			e.Relation.reverseQuery = function(t, n, r) {
				var i = new e.Query(t);
				i.equalTo(n, r._toPointer());
				return i;
			};

			e.Relation.prototype = {
				_ensureParentAndKey: function(e, t) {
					this.parent = this.parent || e;
					this.key = this.key || t;

					if (this.parent !== e) {
						throw new Error("Internal Error. Relation retrieved from two different Objects.");
					}

					if (this.key !== t) {
						throw new Error("Internal Error. Relation retrieved from two different keys.");
					}
				},
				add: function(t) {
					r.isArray(t) || (t = [t]);
					var n = new e.Op.Relation(t, []);
					this.parent.set(this.key, n);
					this.targetClassName = n._targetClassName;;
				},
				remove: function(t) {
					r.isArray(t) || (t = [t]);
					var n = new e.Op.Relation([], t);
					this.parent.set(this.key, n);
					this.targetClassName = n._targetClassName;;
				},
				toJSON: function() {
					return {
						__type: "Relation",
						className: this.targetClassName
					};
				},
				query: function t() {
					var n;
					var t;;

					if (this.targetClassName) {
						n = e.Object._getSubclass(this.targetClassName);
						t = new e.Query(n);;
					} else {
						n = e.Object._getSubclass(this.parent.className);
						t = new e.Query(n);
						t._extraOptions.redirectClassNameForKey = this.key;;
					}

					t._addCondition("$relatedTo", "object", this.parent._toPointer());

					t._addCondition("$relatedTo", "key", this.key);

					return t;
				}
			};;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);
		var i = n(3);;

		e.exports = function(e) {
			e.Role = e.Object.extend("_Role", {
				constructor: function(t, n) {
					if (r.isString(t)) {
						e.Object.prototype.constructor.call(this, null, null);
						this.setName(t);;
					} else {
						e.Object.prototype.constructor.call(this, t, n);
					}

					if (void 0 === n) {
						var i = new e.ACL();
						i.setPublicReadAccess(true);
						this.getACL() || this.setACL(i);;
					} else {
						if (!(n instanceof e.ACL)) {
							throw new TypeError("acl must be an instance of AV.ACL");
						}

						this.setACL(n);
					}
				},
				getName: function() {
					return this.get("name");
				},
				setName: function(e, t) {
					return this.set("name", e, t);
				},
				getUsers: function() {
					return this.relation("users");
				},
				getRoles: function() {
					return this.relation("roles");
				},
				validate: function(t, n) {
					if ("name" in t && t.name !== this.getName()) {
						var o = t.name;

						if (this.id && this.id !== t.objectId) {
							return new i(i.OTHER_CAUSE, "A role's name can only be set before it has been saved.");
						}

						if (!r.isString(o)) {
							return new i(i.OTHER_CAUSE, "A role's name must be a String.");
						}

						if (!/^[0-9a-zA-Z\-_ ]+$/.test(o)) {
							return new i(i.OTHER_CAUSE, "A role's name can only contain alphanumeric characters, _, -, and spaces.");
						}
					}

					return !!e.Object.prototype.validate && e.Object.prototype.validate.call(this, t, n);
				}
			});
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);
		var i = n(1).request;;

		e.exports = function(e) {
			e.SearchSortBuilder = function() {
				this._sortFields = [];
			};

			e.SearchSortBuilder.prototype = {
				_addField: function(e, t, n, r) {
					var i = {};
					i[e] = {
						order: t || "asc",
						mode: n || "avg",
						missing: "_" + (r || "last")
					};

					this._sortFields.push(i);

					return this;
				},
				ascending: function(e, t, n) {
					return this._addField(e, "asc", t, n);
				},
				descending: function(e, t, n) {
					return this._addField(e, "desc", t, n);
				},
				whereNear: function(e, t, n) {
					n = n || {};
					var r = {};
					var i = {
						lat: t.latitude,
						lon: t.longitude
					};
					var o = {
						order: n.order || "asc",
						mode: n.mode || "avg",
						unit: n.unit || "km"
					};;
					o[e] = i;
					r._geo_distance = o;

					this._sortFields.push(r);

					return this;
				},
				build: function() {
					return JSON.stringify(e._encode(this._sortFields));
				}
			};
			e.SearchQuery = e.Query._extend({
				_sid: null,
				_hits: 0,
				_queryString: null,
				_highlights: null,
				_sortBuilder: null,
				_createRequest: function(e, t) {
					return i("search/select", null, null, "GET", e || this.toJSON(), t);
				},
				sid: function(e) {
					this._sid = e;
					return this;
				},
				queryString: function(e) {
					this._queryString = e;
					return this;
				},
				highlights: function(e) {
					var t;

					if (e && r.isString(e)) {
						t = arguments;
					} else {
						t = e;
					}

					this._highlights = t;
					return this;
				},
				sortBy: function(e) {
					this._sortBuilder = e;
					return this;
				},
				hits: function() {
					this._hits || (this._hits = 0);
					return this._hits;
				},
				_processResult: function(e) {
					delete e.className;
					delete e._app_url;
					delete e._deeplink;
					return e;
				},
				hasMore: function() {
					return !this._hitEnd;
				},
				reset: function() {
					this._hitEnd = false;
					this._sid = null;
					this._hits = 0;;
				},
				find: function() {
					var that = this;

					var t = this._createRequest();

					;
					return t.then(function(t) {
						if (t.sid) {
							that._oldSid = that._sid;
							that._sid = t.sid;;
						} else {
							that._sid = null;
							that._hitEnd = true;;
						}

						that._hits = t.hits || 0;
						return r.map(t.results, function(n) {
							if (n.className) {
								t.className = n.className;
							}

							var r = that._newObject(t);

							return {};
						});
					});
				},
				toJSON: function() {
					var t = e.SearchQuery.__super__.toJSON.call(this);

					delete t.where;

					if (this.className) {
						t.clazz = this.className;
					}

					if (this._sid) {
						t.sid = this._sid;
					}

					if (!this._queryString) {
						throw new Error("Please set query string.");
					}

					t.q = this._queryString;

					if (this._highlights) {
						t.highlights = this._highlights.join(",");
					}

					if (this._sortBuilder && t.order) {
						throw new Error("sort and order can not be set at same time.");
					}

					if (this._sortBuilder) {
						t.sort = this._sortBuilder.build();
					}

					return t;
				}
			});;
		};
	}, function(e, t, n) {
		"use strict";

		var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
			return typeof e;
		} : function(e) {
			return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" :
				typeof e;
		};
		var i = n(0);
		var o = n(1).request;;

		e.exports = function(e) {
			var t = function() {
				var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
				return e.User.currentAsync().then(function(n) {
					return n || e.User._fetchUserBySessionToken(t.sessionToken);
				});
			};

			var n = function(n) {
				return t(n).then(function(t) {
					return e.Object.createWithoutData("_User", t.id)._toPointer();
				});
			};

			;

			e.Status = function(e, t) {
				this.data = {};
				this.inboxType = "default";
				this.query = null;

				if (e && "object" === ("undefined" == typeof e ? "undefined" : r(e))) {
					this.data = e;
				} else {
					if (e) {
						this.image = e;
					}

					if (t) {
						this.message = t;
					}

					;
				}

				return this;
			};

			e.Status.prototype = {
				get: function(e) {
					return this[e];
				},
				set: function(e, t) {
					this[e] = t;
					return this;
				},
				destroy: function(t) {
					if (!this.id) {
						return e.Promise.reject(new Error("The status id is not exists."));
					}

					var n = o("statuses", null, this.id, "DELETE", t && t.sessionToken);
					return n;
				},
				toObject: function() {
					return this.id ? e.Object.createWithoutData("_Status", this.id) : null;
				},
				_getDataJSON: function() {
					var t = i.clone(this);
					return e._encode(t);
				},
				send: function() {
					var that = this;
					var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};;

					if (!r.sessionToken && !e.User.current()) {
						throw new Error("Please signin an user.");
					}

					return this.query ? n(r).then(function(e) {
						var n = that.query.toJSON();
						n.className = that.query.className;
						var i = {};
						i.query = n;
						that = that || {};
						that.source = that.source || e;
						i.data = that._getDataJSON();
						i.inboxType = that.inboxType || "default";
						return o("statuses", null, null, "POST", i, r.sessionToken);
					}).then(function(n) {
						return {};
					}) : e.Status.sendStatusToFollowers(this, r);
				},
				_finishFetch: function(t) {
					this.id = t.objectId;
					this.createdAt = e._parseDate(t.createdAt);
					this.updatedAt = e._parseDate(t.updatedAt);
					this.messageId = t.messageId;
					delete t.messageId;
					delete t.objectId;
					delete t.createdAt;
					delete t.updatedAt;
					this.data = e._decode(t);;
				}
			};

			e.Status.sendStatusToFollowers = function(t) {
				var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};

				if (!r.sessionToken && !e.User.current()) {
					throw new Error("Please signin an user.");
				}

				return n(r).then(function(n) {
					var i = {};
					i.className = "_Follower";
					i.keys = "follower";
					i.where = {
						user: n
					};;
					var s = {};
					s.query = i;
					t.data = t.data || {};
					t.data.source = t.data.source || n;
					s.data = t._getDataJSON();
					s.inboxType = t.inboxType || "default";;
					var a = o("statuses", null, null, "POST", s, r.sessionToken);
					return a.then(function(n) {
						return {};
					});
				});
			};

			e.Status.sendPrivateStatus = function(t, r) {
				var s = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};

				if (!s.sessionToken && !e.User.current()) {
					throw new Error("Please signin an user.");
				}

				if (!r) {
					throw new Error("Invalid target user.");
				}

				var a = i.isString(r) ? r : r.id;

				if (!a) {
					throw new Error("Invalid target user.");
				}

				return n(s).then(function(n) {
					var r = {};
					r.className = "_User";
					r.where = {
						objectId: a
					};;
					var i = {};
					i.query = r;
					t.data = t.data || {};
					t.data.source = t.data.source || n;
					i.data = t._getDataJSON();
					i.inboxType = "private";
					t.inboxType = "private";;
					var u = o("statuses", null, null, "POST", i, s.sessionToken);
					return u.then(function(n) {
						return {};
					});
				});
			};

			e.Status.countUnreadStatuses = function(n) {
				var r = (i.isString(arguments[1]) ? arguments[2] : arguments[1]) || {};
				var s = i.isString(arguments[1]) ? arguments[1] : "default";;

				if (!r.sessionToken && null == n && !e.User.current()) {
					throw new Error("Please signin an user or pass the owner objectId.");
				}

				return t(r).then(function(t) {
					var n = {};
					n.inboxType = e._encode(s);
					n.owner = e._encode(t);
					return o("subscribe/statuses/count", null, null, "GET", n, r.sessionToken);
				});
			};

			e.Status.statusQuery = function(t) {
				var n = new e.Query("_Status");

				if (t) {
					n.equalTo("source", t);
				}

				return n;
			};

			e.InboxQuery = e.Query._extend({
				_objectClass: e.Status,
				_sinceId: 0,
				_maxId: 0,
				_inboxType: "default",
				_owner: null,
				_newObject: function() {
					return new e.Status();
				},
				_createRequest: function(e, t) {
					return o("subscribe/statuses", null, null, "GET", e || this.toJSON(), t && t.sessionToken);
				},
				sinceId: function(e) {
					this._sinceId = e;
					return this;
				},
				maxId: function(e) {
					this._maxId = e;
					return this;
				},
				owner: function(e) {
					this._owner = e;
					return this;
				},
				inboxType: function(e) {
					this._inboxType = e;
					return this;
				},
				toJSON: function() {
					var t = e.InboxQuery.__super__.toJSON.call(this);

					return {};
				}
			});

			e.Status.inboxQuery = function(t, n) {
				var r = new e.InboxQuery(e.Status);

				if (t) {
					r._owner = t;
				}

				if (n) {
					r._inboxType = n;
				}

				return r;
			};

			;
		};
	}, function(e, t, n) {
		"use strict";

		e.exports = [];
	}, function(e, t, n) {
		"use strict";

		var r = n(18);
		var i = ["Weapp"].concat(n(39));;
		e.exports = "LeanCloud-JS-SDK/" + r + " (" + i.join("; ") + ")";
	}, function(e, t, n) {
		"use strict";

		var r = n(6);
		var i = n(9)("cos");
		var o = n(2);;

		e.exports = function(e, t, n) {
			var s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};
			n.attributes.url = e.url;
			n._bucket = e.bucket;
			n.id = e.objectId;;
			var a = e.upload_url + "?sign=" + encodeURIComponent(e.token);
			return new o(function(e, o) {
				var u = r("POST", a).field("fileContent", t).field("op", "upload");

				if (s.onprogress) {
					u.on("progress", s.onprogress);
				}

				u.end(function(t, r) {
					if (r) {
						i(r.status, r.body, r.text);
					}

					return t ? (r && (t.statusCode = r.status, t.responseText = r.text, t.response = r.body), o(t)) : void e(
						n);
				});;
			});
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(6);
		var i = n(2);
		var o = n(9)("qiniu");;

		e.exports = function(e, t, n) {
			var s = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};
			n.attributes.url = e.url;
			n._bucket = e.bucket;
			n.id = e.objectId;;
			var a = e.token;
			return new i(function(e, i) {
				var u = r("POST", "https://up.qbox.me").field("file", t).field("name", n.attributes.name).field("key", n
					._qiniu_key).field("token", a);

				if (s.onprogress) {
					u.on("progress", s.onprogress);
				}

				u.end(function(t, r) {
					if (r) {
						o(r.status, r.body, r.text);
					}

					return t ? (r && (t.statusCode = r.status, t.responseText = r.text, t.response = r.body), i(t)) : void e(
						n);
				});;
			});
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(6);
		n(2);

		e.exports = function(e, t, n) {
			var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {};
			n.attributes.url = e.url;
			n._bucket = e.bucket;
			n.id = e.objectId;
			return new Promise(function(o, s) {
				var a = r("PUT", e.upload_url).set("Content-Type", n.get("mime_type")).send(t);

				if (i.onprogress) {
					a.on("progress", i.onprogress);
				}

				a.end(function(e, t) {
					return e ? (t && (e.statusCode = t.status, e.responseText = t.text, e.response = t.body), s(e)) : void o(
						n);
				});;
			});
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(0);
		var i = n(3);
		var o = n(1).request;
		var s = n(2);

		var a = function() {
			if ("undefined" == typeof wx || "function" != typeof uni.login) {
				throw new Error("Weapp Login is only available in Weapp");
			}

			return new s(function(e, t) {
				uni.login({
					success: function(n) {
						var r = n.code;
						var i = n.errMsg;;

						if (r) {
							e(r);
						} else {
							t(new Error(i));
						}
					}
				});
			});
		};

		;

		e.exports = function(e) {
			e.User = e.Object.extend("_User", {
				_isCurrentUser: false,
				_mergeMagicFields: function(t) {
					if (t.sessionToken) {
						this._sessionToken = t.sessionToken;
						delete t.sessionToken;;
					}

					e.User.__super__._mergeMagicFields.call(this, t);

					;
				},
				_cleanupAuthData: function() {
					if (this.isCurrent()) {
						var t = this.get("authData");

						if (t) {
							e._objectEach(this.get("authData"), function(e, n) {
								t[n] || delete t[n];
							});
						}
					}
				},
				_synchronizeAllAuthData: function() {
					var t = this.get("authData");

					if (t) {
						var that = this;

						e._objectEach(this.get("authData"), function(e, t) {
							that._synchronizeAuthData(t);
						});
					}
				},
				_synchronizeAuthData: function(t) {
					if (this.isCurrent()) {
						var n;

						if (r.isString(t)) {
							n = t;
							t = e.User._authProviders[n];;
						} else {
							n = t.getAuthType();
						}

						var i = this.get("authData");

						if (i && t) {
							var o = t.restoreAuthentication(i[n]);
							o || this._unlinkFrom(t);
						}
					}
				},
				_handleSaveResult: function(t) {
					if (t && !e._config.disableCurrentUser) {
						this._isCurrentUser = true;
					}

					this._cleanupAuthData();

					this._synchronizeAllAuthData();

					delete this._serverData.password;

					this._rebuildEstimatedDataForKey("password");

					this._refreshCache();

					return !t && !this.isCurrent() || e._config.disableCurrentUser ? s.resolve() : s.resolve(e.User
						._saveCurrentUser(this));
				},
				_linkWith: function(t, n) {
					var i;
					var that = this;;

					if (r.isString(t)) {
						i = t;
						t = e.User._authProviders[t];;
					} else {
						i = t.getAuthType();
					}

					if (n) {
						var s = this.get("authData") || {};
						s[i] = n;
						return this.save({
							authData: s
						}).then(function(e) {
							return e._handleSaveResult(true).then(function() {
								return e;
							});
						});
					}

					return t.authenticate().then(function(e) {
						return that._linkWith(t, e);
					});
				},
				linkWithWeapp: function() {
					var that = this;
					return a().then(function(t) {
						return that._linkWith("lc_weapp", {
							code: t
						});
					});
				},
				_unlinkFrom: function(t) {
					var that = this;

					if (r.isString(t)) {
						t = e.User._authProviders[t];
					}

					return this._linkWith(t, null).then(function(e) {
						that._synchronizeAuthData(t);

						return e;
					});
				},
				_isLinked: function(e) {
					var t;

					if (r.isString(e)) {
						t = e;
					} else {
						t = e.getAuthType();
					}

					var n = this.get("authData") || {};
					return !!n[t];
				},
				logOut: function() {
					this._logOutWithAll();

					this._isCurrentUser = false;;
				},
				_logOutWithAll: function() {
					var t = this.get("authData");

					if (t) {
						var that = this;

						e._objectEach(this.get("authData"), function(e, t) {
							that._logOutWith(t);
						});
					}
				},
				_logOutWith: function(t) {
					if (this.isCurrent()) {
						if (r.isString(t)) {
							t = e.User._authProviders[t];
						}

						if (t && t.deauthenticate) {
							t.deauthenticate();
						}

						;
					}
				},
				signUp: function(e, t) {
					var n;
					var r = e && e.username || this.get("username");;

					if (!r || "" === r) {
						throw n = new i(i.OTHER_CAUSE, "Cannot sign up user with an empty name.");
					}

					var o = e && e.password || this.get("password");

					if (!o || "" === o) {
						throw n = new i(i.OTHER_CAUSE, "Cannot sign up user with an empty password.");
					}

					return this.save(e, t).then(function(e) {
						return e._handleSaveResult(true).then(function() {
							return e;
						});
					});
				},
				signUpOrlogInWithMobilePhone: function(e) {
					var t;
					var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
					var r = e && e.mobilePhoneNumber || this.get("mobilePhoneNumber");;

					if (!r || "" === r) {
						throw t = new i(i.OTHER_CAUSE,
							"Cannot sign up or login user by mobilePhoneNumber with an empty mobilePhoneNumber.");
					}

					var s = e && e.smsCode || this.get("smsCode");

					if (!s || "" === s) {
						throw t = new i(i.OTHER_CAUSE,
							"Cannot sign up or login user by mobilePhoneNumber  with an empty smsCode.");
					}

					n._makeRequest = function(e, t, n, r, i) {
						return o("usersByMobilePhone", null, null, "POST", i);
					};

					return this.save(e, n).then(function(e) {
						delete e.attributes.smsCode;
						delete e._serverData.smsCode;
						return e._handleSaveResult(true).then(function() {
							return e;
						});
					});
				},
				logIn: function() {
					var that = this;
					var t = o("login", null, null, "POST", this.toJSON());;
					return t.then(function(t) {
						var n = that.parse(t);

						that._finishFetch(n);

						return that._handleSaveResult(true).then(function() {
							n.smsCode || delete that.attributes.smsCode;
							return that;
						});
					});
				},
				save: function(t, n, i) {
					var o;
					var s;;

					if (r.isObject(t) || r.isNull(t) || r.isUndefined(t)) {
						o = t;
						s = n;;
					} else {
						o = {};
						o[t] = n;
						s = i;;
					}

					s = s || {};
					return e.Object.prototype.save.call(this, o, s).then(function(e) {
						return e._handleSaveResult(false).then(function() {
							return e;
						});
					});
				},
				follow: function(e, t) {
					if (!this.id) {
						throw new Error("Please signin.");
					}

					if (!e) {
						throw new Error("Invalid target user.");
					}

					var n = r.isString(e) ? e : e.id;

					if (!n) {
						throw new Error("Invalid target user.");
					}

					var i = "users/" + this.id + "/friendship/" + n;
					var s = o(i, null, null, "POST", null, t);;
					return s;
				},
				unfollow: function(e, t) {
					if (!this.id) {
						throw new Error("Please signin.");
					}

					if (!e) {
						throw new Error("Invalid target user.");
					}

					var n = r.isString(e) ? e : e.id;

					if (!n) {
						throw new Error("Invalid target user.");
					}

					var i = "users/" + this.id + "/friendship/" + n;
					var s = o(i, null, null, "DELETE", null, t);;
					return s;
				},
				followerQuery: function() {
					return e.User.followerQuery(this.id);
				},
				followeeQuery: function() {
					return e.User.followeeQuery(this.id);
				},
				fetch: function(t, n) {
					return e.Object.prototype.fetch.call(this, t, n).then(function(e) {
						return e._handleSaveResult(false).then(function() {
							return e;
						});
					});
				},
				updatePassword: function(e, t, n) {
					var r = "users/" + this.id + "/updatePassword";
					var i = {
						old_password: e,
						new_password: t
					};
					var s = o(r, null, null, "PUT", i, n);;
					return s;
				},
				isCurrent: function() {
					return this._isCurrentUser;
				},
				getUsername: function() {
					return this.get("username");
				},
				getMobilePhoneNumber: function() {
					return this.get("mobilePhoneNumber");
				},
				setMobilePhoneNumber: function(e, t) {
					return this.set("mobilePhoneNumber", e, t);
				},
				setUsername: function(e, t) {
					return this.set("username", e, t);
				},
				setPassword: function(e, t) {
					return this.set("password", e, t);
				},
				getEmail: function() {
					return this.get("email");
				},
				setEmail: function(e, t) {
					return this.set("email", e, t);
				},
				authenticated: function() {
					console.warn(
						"DEPRECATED: å¦‚æžœè¦åˆ¤æ–­å½“å‰ç”¨æˆ·çš„ç™»å½•çŠ¶æ€æ˜¯å¦æœ‰æ•ˆï¼Œè¯·ä½¿ç”¨ currentUser.isAuthenticated().then()ï¼Œå¦‚æžœè¦åˆ¤æ–­è¯¥ç”¨æˆ·æ˜¯å¦æ˜¯å½“å‰ç™»å½•ç”¨æˆ·ï¼Œè¯·ä½¿ç”¨ user.id === currentUser.idã€‚"
						);
					return !!this._sessionToken && !e._config.disableCurrentUser && e.User.current() && e.User.current().id ===
						this.id;
				},
				isAuthenticated: function() {
					var that = this;
					return s.resolve().then(function() {
						return !!that._sessionToken && e.User._fetchUserBySessionToken(that._sessionToken).then(function() {
							return true;
						}, function(e) {
							if (211 === e.code) {
								return false;
							}

							throw e;
						});
					});
				},
				getSessionToken: function() {
					return this._sessionToken;
				},
				getRoles: function(t) {
					return e.Relation.reverseQuery("_Role", "users", this).find(t);
				}
			}, {
				_currentUser: null,
				_currentUserMatchesDisk: false,
				_CURRENT_USER_KEY: "currentUser",
				_authProviders: {},
				signUp: function(t, n, r, i) {
					r = r || {};
					r.username = t;
					r.password = n;;

					var o = e.Object._create("_User");

					return o.signUp(r, i);
				},
				logIn: function(t, n, r) {
					var i = e.Object._create("_User");

					i._finishFetch({
						username: t,
						password: n
					});

					return i.logIn(r);
				},
				become: function(e) {
					return this._fetchUserBySessionToken(e).then(function(e) {
						return e._handleSaveResult(true).then(function() {
							return e;
						});
					});
				},
				_fetchUserBySessionToken: function(t) {
					var n = e.Object._create("_User");

					return o("users", "me", null, "GET", {
						session_token: t
					}).then(function(e) {
						var t = n.parse(e);

						n._finishFetch(t);

						return n;
					});
				},
				logInWithMobilePhoneSmsCode: function(t, n, r) {
					var i = e.Object._create("_User");

					i._finishFetch({
						mobilePhoneNumber: t,
						smsCode: n
					});

					return i.logIn(r);
				},
				signUpOrlogInWithMobilePhone: function(t, n, r, i) {
					r = r || {};
					r.mobilePhoneNumber = t;
					r.smsCode = n;;

					var o = e.Object._create("_User");

					return o.signUpOrlogInWithMobilePhone(r, i);
				},
				logInWithMobilePhone: function(t, n, r) {
					var i = e.Object._create("_User");

					i._finishFetch({
						mobilePhoneNumber: t,
						password: n
					});

					return i.logIn(r);
				},
				signUpOrlogInWithAuthData: function(t, n) {
					return e.User._logInWith(n, t);
				},
				loginWithWeapp: function() {
					var that = this;
					return a().then(function(t) {
						return that.signUpOrlogInWithAuthData({
							code: t
						}, "lc_weapp");
					});
				},
				associateWithAuthData: function(e, t, n) {
					return e._linkWith(t, n);
				},
				logOut: function() {
					return e._config.disableCurrentUser ? (console.warn(
						"AV.User.current() was disabled in multi-user environment, call logOut() from user object instead https://leancloud.cn/docs/leanengine-node-sdk-upgrade-1.html"
						), s.resolve(null)) : (null !== e.User._currentUser && (e.User._currentUser._logOutWithAll(), e.User
							._currentUser._isCurrentUser = false), e.User._currentUserMatchesDisk = true, e.User._currentUser =
						null, e.localStorage.removeItemAsync(e._getAVPath(e.User._CURRENT_USER_KEY)));
				},
				followerQuery: function(t) {
					if (!t || !r.isString(t)) {
						throw new Error("Invalid user object id.");
					}

					var n = new e.FriendShipQuery("_Follower");
					return {};
				},
				followeeQuery: function(t) {
					if (!t || !r.isString(t)) {
						throw new Error("Invalid user object id.");
					}

					var n = new e.FriendShipQuery("_Followee");
					return {};
				},
				requestPasswordReset: function(e) {
					var t = {
						email: e
					};
					var n = o("requestPasswordReset", null, null, "POST", t);;
					return n;
				},
				requestEmailVerify: function(e) {
					var t = {
						email: e
					};
					var n = o("requestEmailVerify", null, null, "POST", t);;
					return n;
				},
				requestMobilePhoneVerify: function(e) {
					var t = {
						mobilePhoneNumber: e
					};
					var n = o("requestMobilePhoneVerify", null, null, "POST", t);;
					return n;
				},
				requestPasswordResetBySmsCode: function(e) {
					var t = {
						mobilePhoneNumber: e
					};
					var n = o("requestPasswordResetBySmsCode", null, null, "POST", t);;
					return n;
				},
				resetPasswordBySmsCode: function(e, t) {
					var n = {
						password: t
					};
					var r = o("resetPasswordBySmsCode", null, e, "PUT", n);;
					return r;
				},
				verifyMobilePhone: function(e) {
					var t = o("verifyMobilePhone", null, e, "POST", null);
					return t;
				},
				requestLoginSmsCode: function(e) {
					var t = {
						mobilePhoneNumber: e
					};
					var n = o("requestLoginSmsCode", null, null, "POST", t);;
					return n;
				},
				currentAsync: function() {
					return e._config.disableCurrentUser ? (console.warn(
							"AV.User.currentAsync() was disabled in multi-user environment, access user from request instead https://leancloud.cn/docs/leanengine-node-sdk-upgrade-1.html"
							), s.resolve(null)) : e.User._currentUser ? s.resolve(e.User._currentUser) : e.User
						._currentUserMatchesDisk ? s.resolve(e.User._currentUser) : e.localStorage.getItemAsync(e._getAVPath(e
							.User._CURRENT_USER_KEY)).then(function(t) {
							if (!t) {
								return null;
							}

							e.User._currentUserMatchesDisk = true;
							e.User._currentUser = e.Object._create("_User");
							e.User._currentUser._isCurrentUser = true;;
							var n = JSON.parse(t);
							e.User._currentUser.id = n._id;
							delete n._id;
							e.User._currentUser._sessionToken = n._sessionToken;
							delete n._sessionToken;

							e.User._currentUser._finishFetch(n);

							e.User._currentUser._synchronizeAllAuthData();

							e.User._currentUser._refreshCache();

							e.User._currentUser._opSetQueue = [{}];
							return e.User._currentUser;
						});
				},
				current: function() {
					if (e._config.disableCurrentUser) {
						console.warn(
							"AV.User.current() was disabled in multi-user environment, access user from request instead https://leancloud.cn/docs/leanengine-node-sdk-upgrade-1.html"
							);
						return null;
					}

					if (e.User._currentUser) {
						return e.User._currentUser;
					}

					if (e.User._currentUserMatchesDisk) {
						return e.User._currentUser;
					}

					e.User._currentUserMatchesDisk = true;
					var t = e.localStorage.getItem(e._getAVPath(e.User._CURRENT_USER_KEY));

					if (!t) {
						return null;
					}

					e.User._currentUser = e.Object._create("_User");
					e.User._currentUser._isCurrentUser = true;;
					var n = JSON.parse(t);
					e.User._currentUser.id = n._id;
					delete n._id;
					e.User._currentUser._sessionToken = n._sessionToken;
					delete n._sessionToken;

					e.User._currentUser._finishFetch(n);

					e.User._currentUser._synchronizeAllAuthData();

					e.User._currentUser._refreshCache();

					e.User._currentUser._opSetQueue = [{}];
					return e.User._currentUser;
				},
				_saveCurrentUser: function(t) {
					var n;

					if (e.User._currentUser !== t) {
						n = e.User.logOut();
					} else {
						n = s.resolve();
					}

					return n.then(function() {
						t._isCurrentUser = true;
						e.User._currentUser = t;;
						var n = t.toJSON();
						n._id = t.id;
						n._sessionToken = t._sessionToken;
						return e.localStorage.setItemAsync(e._getAVPath(e.User._CURRENT_USER_KEY), JSON.stringify(n)).then(
							function() {
								e.User._currentUserMatchesDisk = true;
							});
					});
				},
				_registerAuthenticationProvider: function(t) {
					e.User._authProviders[t.getAuthType()] = t;

					if (!e._config.disableCurrentUser && e.User.current()) {
						e.User.current()._synchronizeAuthData(t.getAuthType());
					}

					;
				},
				_logInWith: function(t, n) {
					var r = e.Object._create("_User");

					return r._linkWith(t, n);
				}
			});
		};
	}, function(e, t, n) {
		"use strict";

		(function(t) {
			var r = n(0);
			var i = (n(2), {});
			var o = ["getItem", "setItem", "removeItem", "clear"];
			var s = t.localStorage;;

			try {
				var a = "__storejs__";
				s.setItem(a, a);

				if (s.getItem(a) != a) {
					throw new Error();
				}

				s.removeItem(a);
			} catch (e) {
				s = n(54);
			}

			r(o).each(function(e) {
				i[e] = function() {
					return t.localStorage[e].apply(t.localStorage, arguments);
				};
			});
			i.async = false;
			e.exports = i;;
		}).call(t, n(7));
	}, function(e, t, n) {
		"use strict";

		var r = function(e, t) {
			var n;

			if (e.indexOf("base64") < 0) {
				n = atob(e);
			} else {
				if (e.split(",")[0].indexOf("base64") >= 0) {
					t = t || e.split(",")[0].split(":")[1].split(";")[0];
					n = atob(e.split(",")[1]);;
				} else {
					n = unescape(e.split(",")[1]);
				}
			}

			for (var r = new Uint8Array(n.length), i = 0; i < n.length; i++) {
				r[i] = n.charCodeAt(i);
			}

			return new Blob([r], {
				type: t
			});
		};

		e.exports = r;
	}, function(e, t, n) {
		function r(e) {
			if (e) {
				return i(e);
			}
		}

		function i(e) {
			for (var t in r.prototype) {
				e[t] = r.prototype[t];
			}

			return e;
		}

		e.exports = r;

		r.prototype.on = r.prototype.addEventListener = function(e, t) {
			this._callbacks = this._callbacks || {};
			(this._callbacks["$" + e] = this._callbacks["$" + e] || []).push(t);
			return this;
		};

		r.prototype.once = function(e, t) {
			function n() {
				this.off(e, n);
				t.apply(this, arguments);;
			}

			n.fn = t;
			this.on(e, n);
			return this;
		};

		r.prototype.off = r.prototype.removeListener = r.prototype.removeAllListeners = r.prototype.removeEventListener =
			function(e, t) {
				this._callbacks = this._callbacks || {};

				if (0 == arguments.length) {
					this._callbacks = {};
					return this;
				}

				var n = this._callbacks["$" + e];

				if (!n) {
					return this;
				}

				if (1 == arguments.length) {
					delete this._callbacks["$" + e];
					return this;
				}

				for (var r, i = 0; i < n.length; i++) {
					r = n[i];

					if (r === t || r.fn === t) {
						n.splice(i, 1);
						break;
					}
				}

				return this;
			};

		r.prototype.emit = function(e) {
			this._callbacks = this._callbacks || {};
			var t = [].slice.call(arguments, 1);
			var n = this._callbacks["$" + e];;

			if (n) {
				n = n.slice(0);

				for (var r = 0, i = n.length; r < i; ++r) {
					n[r].apply(this, t);
				}
			}

			return this;
		};

		r.prototype.listeners = function(e) {
			this._callbacks = this._callbacks || {};
			return this._callbacks["$" + e] || [];
		};

		r.prototype.hasListeners = function(e) {
			return !!this.listeners(e).length;
		};

		;
	}, function(e, t) {
		! function() {
			var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
			var n = {
				rotl: function(e, t) {
					return e << t | e >>> 32 - t;
				},
				rotr: function(e, t) {
					return e << 32 - t | e >>> t;
				},
				endian: function(e) {
					if (e.constructor == Number) {
						return 16711935 & n.rotl(e, 8) | 4278255360 & n.rotl(e, 24);
					}

					for (var t = 0; t < e.length; t++) {
						e[t] = n.endian(e[t]);
					}

					return e;
				},
				randomBytes: function(e) {
					for (var t = []; e > 0; e--) {
						t.push(Math.floor(256 * Math.random()));
					}

					return t;
				},
				bytesToWords: function(e) {
					for (var t = [], n = 0, r = 0; n < e.length; n++, r += 8) {
						t[r >>> 5] |= e[n] << 24 - r % 32;
					}

					return t;
				},
				wordsToBytes: function(e) {
					for (var t = [], n = 0; n < 32 * e.length; n += 8) {
						t.push(e[n >>> 5] >>> 24 - n % 32 & 255);
					}

					return t;
				},
				bytesToHex: function(e) {
					for (var t = [], n = 0; n < e.length; n++) {
						t.push((e[n] >>> 4).toString(16));
						t.push((15 & e[n]).toString(16));;
					}

					return t.join("");
				},
				hexToBytes: function(e) {
					for (var t = [], n = 0; n < e.length; n += 2) {
						t.push(parseInt(e.substr(n, 2), 16));
					}

					return t;
				},
				bytesToBase64: function(e) {
					for (var n = [], r = 0; r < e.length; r += 3) {
						for (var i = e[r] << 16 | e[r + 1] << 8 | e[r + 2], o = 0; o < 4; o++) {
							if (8 * r + 6 * o <= 8 * e.length) {
								n.push(t.charAt(i >>> 6 * (3 - o) & 63));
							} else {
								n.push("=");
							}
						}
					}

					return n.join("");
				},
				base64ToBytes: function(e) {
					e = e.replace(/[^A-Z0-9+\/]/gi, "");

					for (var n = [], r = 0, i = 0; r < e.length; i = ++r % 4) {
						if (0 != i) {
							n.push((t.indexOf(e.charAt(r - 1)) & Math.pow(2, -2 * i + 8) - 1) << 2 * i | t.indexOf(e.charAt(r)) >>> 6 -
								2 * i);
						}
					}

					return n;
				}
			};;
			e.exports = n;
		}();
	}, function(e, t, n) {
		function r(e) {
			var n;
			var r = 0;;

			for (n in e) {
				r = (r << 5) - r + e.charCodeAt(n);
				r |= 0;;
			}

			return t.colors[Math.abs(r) % t.colors.length];
		}

		function i(e) {
			function n() {
				if (n.enabled) {
					var e = n;
					var r = +new Date();
					var i = r - (c || r);;
					e.diff = i;
					e.prev = c;
					e.curr = r;
					c = r;;

					for (var o = new Array(arguments.length), s = 0; s < o.length; s++) {
						o[s] = arguments[s];
					}

					o[0] = t.coerce(o[0]);

					if ("string" != typeof o[0]) {
						o.unshift("%O");
					}

					;
					var a = 0;
					o[0] = o[0].replace(/%([a-zA-Z%])/g, function(n, r) {
						if ("%%" === n) {
							return n;
						}

						a++;
						var i = t.formatters[r];

						if ("function" == typeof i) {
							var s = o[a];
							n = i.call(e, s);
							o.splice(a, 1);
							a--;;
						}

						return n;
					});
					t.formatArgs.call(e, o);;
					var u = n.log || t.log || console.log.bind(console);
					u.apply(e, o);
				}
			}

			return {};
		}

		function o(e) {
			t.save(e);

			for (var n = (e || "").split(/[\s,]+/), r = n.length, i = 0; i < r; i++) {
				if (n[i]) {
					e = n[i].replace(/\*/g, ".*?");

					if ("-" === e[0]) {
						t.skips.push(new RegExp("^" + e.substr(1) + "$"));
					} else {
						t.names.push(new RegExp("^" + e + "$"));
					}

					;
				}
			}
		}

		function s() {
			t.enable("");
		}

		function a(e) {
			var n;
			var r;;

			for (n = 0, r = t.skips.length; n < r; n++) {
				if (t.skips[n].test(e)) {
					return false;
				}
			}

			for (n = 0, r = t.names.length; n < r; n++) {
				if (t.names[n].test(e)) {
					return true;
				}
			}

			return false;
		}

		function u(e) {
			return e instanceof Error ? e.stack || e.message : e;
		}

		t = e.exports = i.debug = i.default = i;
		t.coerce = u;
		t.disable = s;
		t.enable = o;
		t.enabled = a;
		t.humanize = n(56);
		t.names = [];
		t.skips = [];
		t.formatters = {};;
		var c;
	}, function(e, t, n) {
		(function(t) {
			! function(t, n) {
				e.exports = n();
			}(this, function() {
				"use strict";

				function e(e) {
					return "function" == typeof e || "object" == typeof e && null !== e;
				}

				function r(e) {
					return "function" == typeof e;
				}

				function i(e) {
					G = e;
				}

				function o(e) {
					H = e;
				}

				function s() {
					return function() {
						return process.nextTick(f);
					};
				}

				function a() {
					return "undefined" != typeof z ? function() {
						z(f);
					} : l();
				}

				function u() {
					var e = 0;
					var t = new Y(f);
					var n = document.createTextNode("");;
					t.observe(n, {
						characterData: true
					});
					return function() {
						n.data = e = ++e % 2;
					};
				}

				function c() {
					var e = new MessageChannel();
					e.port1.onmessage = f;
					return function() {
						return e.port2.postMessage(0);
					};
				}

				function l() {
					var e = setTimeout;
					return function() {
						return e(f, 1);
					};
				}

				function f() {
					for (var e = 0; e < K; e += 2) {
						var t = te[e];
						var n = te[e + 1];;
						t(n);
						te[e] = void 0;
						te[e + 1] = void 0;;
					}

					K = 0;
				}

				function h() {
					try {
						var e = n(61);
						z = e.runOnLoop || e.runOnContext;
						return a();
					} catch (e) {
						return l();
					}
				}

				function d(e, t) {
					var n = arguments;
					var that = this;
					var i = new this.constructor(_);;

					if (void 0 === i[re]) {
						P(i);
					}

					var o = that._state;

					if (o) {
						! function() {
							var e = n[o - 1];
							H(function() {
								return U(o, i, e, that._result);
							});
						}();
					} else {
						T(that, i, e, t);
					}

					return i;
				}

				function p(e) {
					var that = this;

					if (e && "object" == typeof e && e.constructor === that) {
						return e;
					}

					var n = new that(_);
					O(n, e);
					return n;
				}

				function _() {}

				function v() {
					return new TypeError("You cannot resolve a promise with itself");
				}

				function y() {
					return new TypeError("A promises callback cannot return that same promise.");
				}

				function m(e) {
					try {
						return e.then;
					} catch (e) {
						return {};
					}
				}

				function g(e, t, n, r) {
					try {
						e.call(t, n, r);
					} catch (e) {
						return e;
					}
				}

				function b(e, t, n) {
					H(function(e) {
						var r = false;
						var i = g(n, t, function(n) {
							r || (r = true, t !== n ? O(e, n) : E(e, n));
						}, function(t) {
							r || (r = true, j(e, t));
						}, "Settle: " + (e._label || " unknown promise"));;

						if (!r && i) {
							r = true;
							j(e, i);;
						}
					}, e);
				}

				function w(e, t) {
					if (t._state === oe) {
						E(e, t._result);
					} else {
						if (t._state === se) {
							j(e, t._result);
						} else {
							T(t, void 0, function(t) {
								return O(e, t);
							}, function(t) {
								return j(e, t);
							});
						}
					}
				}

				function S(e, t, n) {
					if (t.constructor === e.constructor && n === d && t.constructor.resolve === p) {
						w(e, t);
					} else {
						if (n === ae) {
							j(e, ae.error);
						} else {
							if (void 0 === n) {
								E(e, t);
							} else {
								if (r(n)) {
									b(e, t, n);
								} else {
									E(e, t);
								}
							}
						}
					}
				}

				function O(t, n) {
					if (t === n) {
						j(t, v());
					} else {
						if (e(n)) {
							S(t, n, m(n));
						} else {
							E(t, n);
						}
					}
				}

				function A(e) {
					if (e._onerror) {
						e._onerror(e._result);
					}

					N(e);;
				}

				function E(e, t) {
					if (e._state === ie) {
						e._result = t;
						e._state = oe;

						if (0 !== e._subscribers.length) {
							H(N, e);
						}

						;
					}
				}

				function j(e, t) {
					if (e._state === ie) {
						e._state = se;
						e._result = t;
						H(A, e);;
					}
				}

				function T(e, t, n, r) {
					var i = e._subscribers;
					var o = i.length;;
					e._onerror = null;
					i[o] = t;
					i[o + oe] = n;
					i[o + se] = r;

					if (0 === o && e._state) {
						H(N, e);
					}

					;
				}

				function N(e) {
					var t = e._subscribers;
					var n = e._state;;

					if (0 !== t.length) {
						for (var r = void 0, i = void 0, o = e._result, s = 0; s < t.length; s += 3) {
							r = t[s];
							i = t[s + n];

							if (r) {
								U(n, r, i, o);
							} else {
								i(o);
							}

							;
						}

						e._subscribers.length = 0;
					}
				}

				function C() {
					this.error = null;
				}

				function x(e, t) {
					try {
						return e(t);
					} catch (e) {
						return {};
					}
				}

				function U(e, t, n, i) {
					var o = r(n);
					var s = void 0;
					var a = void 0;
					var u = void 0;
					var c = void 0;;

					if (o) {
						s = x(n, i);

						if (s === ue) {
							c = true;
							a = s.error;
							s = null;;
						} else {
							u = true;
						}

						if (t === s) {
							return void j(t, y());
						}
					} else {
						s = i;
						u = true;;
					}

					t._state !== ie || (o && u ? O(t, s) : c ? j(t, a) : e === oe ? E(t, s) : e === se && j(t, s));
				}

				function I(e, t) {
					try {
						t(function(t) {
							O(e, t);
						}, function(t) {
							j(e, t);
						});
					} catch (t) {
						j(e, t);
					}
				}

				function k() {
					return ce++;
				}

				function P(e) {
					e[re] = ce++;
					e._state = void 0;
					e._result = void 0;
					e._subscribers = [];;
				}

				function R(e, t) {
					this._instanceConstructor = e;
					this.promise = new e(_);
					this.promise[re] || P(this.promise);

					if (Q(t)) {
						this._input = t;
						this.length = t.length;
						this._remaining = t.length;
						this._result = new Array(this.length);

						if (0 === this.length) {
							E(this.promise, this._result);
						} else {
							this.length = this.length || 0, this._enumerate(), 0 === this._remaining && E(this.promise, this._result);
						}

						;
					} else {
						j(this.promise, D());
					}

					;
				}

				function D() {
					return new Error("Array Methods must be provided an Array");
				}

				function L(e) {
					return new R(this, e).promise;
				}

				function q(e) {
					var that = this;
					return new that(Q(e) ? function(n, r) {
						for (var i = e.length, o = 0; o < i; o++) {
							that.resolve(e[o]).then(n, r);
						}
					} : function(e, t) {
						return t(new TypeError("You must pass an array to race."));
					});
				}

				function M(e) {
					var that = this;
					var n = new that(_);;
					j(n, e);
					return n;
				}

				function F() {
					throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");
				}

				function B() {
					throw new TypeError(
						"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function."
						);
				}

				function J(e) {
					this[re] = k();
					this._result = this._state = void 0;
					this._subscribers = [];

					if (_ !== e) {
						if ("function" != typeof e) {
							F();
						}

						if (this instanceof J) {
							I(this, e);
						} else {
							B();
						}

						;
					}

					;
				}

				function W() {
					var e = void 0;

					if ("undefined" != typeof t) {
						e = t;
					} else {
						if ("undefined" != typeof self) {
							e = self;
						} else {
							try {
								e = Function("return this")();
							} catch (e) {
								throw new Error("polyfill failed because global object is unavailable in this environment");
							}
						}
					}

					var n = e.Promise;

					if (n) {
						var r = null;

						try {
							r = Object.prototype.toString.call(n.resolve());
						} catch (e) {}

						if ("[object Promise]" === r && !n.cast) {
							return;
						}
					}

					e.Promise = J;
				}

				var V = void 0;

				if (Array.isArray) {
					V = Array.isArray;
				} else {
					V = function(e) {
						return "[object Array]" === Object.prototype.toString.call(e);
					};
				}

				var Q = V;
				var K = 0;
				var z = void 0;
				var G = void 0;

				var H = function(e, t) {
					te[K] = e;
					te[K + 1] = t;
					K += 2;

					if (2 === K) {
						if (G) {
							G(f);
						} else {
							ne();
						}
					}

					;
				};

				var $ = "undefined" != typeof window ? window : void 0;
				var X = $ || {};
				var Y = X.MutationObserver || X.WebKitMutationObserver;
				var Z = "undefined" == typeof self && "undefined" != typeof process && "[object process]" === {}.toString
					.call(process);
				var ee = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" !=
					typeof MessageChannel;
				var te = new Array(1000);
				var ne = void 0;;

				if (Z) {
					ne = s();
				} else {
					if (Y) {
						ne = u();
					} else {
						if (ee) {
							ne = c();
						} else {
							if (void 0 === $) {
								ne = h();
							} else {
								ne = l();
							}
						}
					}
				}

				var re = Math.random().toString(36).substring(16);
				var ie = void 0;
				var oe = 1;
				var se = 2;
				var ae = new C();
				var ue = new C();
				var ce = 0;;
				return {
					constructor: J,
					then: d,
					catch: function(e) {
						return this.then(null, e);
					}
				};
			});
		}).call(t, n(7));
	}, function(e, t, n) {
		"use strict";

		function r(e, t) {
			for (var n = e[s][t]; null != n;) {
				if (n.kind === a) {
					return n.listener;
				}

				n = n.next;
			}

			return null;
		}

		function i(e, t, n) {
			if ("function" != typeof n && "object" != typeof n) {
				n = null;
			}

			for (var r = null, i = e[s][t]; null != i;) {
				if (i.kind === a) {
					if (null == r) {
						e[s][t] = i.next;
					} else {
						r.next = i.next;
					}
				} else {
					r = i;
				}

				i = i.next;;
			}

			if (null != n) {
				if (null == r) {
					e[s][t] = u(n, a);
				} else {
					r.next = u(n, a);
				}
			}
		}

		var o = n(10);
		var s = o.LISTENERS;
		var a = o.ATTRIBUTE;
		var u = o.newNode;;

		t.defineCustomEventTarget = function(e, t) {
			function n() {
				e.call(this);
			}

			var o = {
				constructor: {
					value: n,
					configurable: true,
					writable: true
				}
			};
			t.forEach(function(e) {
				o["on" + e] = {
					get: function() {
						return r(this, e);
					},
					set: function(t) {
						i(this, e, t);
					},
					configurable: true,
					enumerable: true
				};
			});
			n.prototype = Object.create(e.prototype, o);
			return n;
		};
	}, function(e, t, n) {
		"use strict";

		var r = n(10).createUniqueKey;
		var i = r("stop_immediate_propagation_flag");
		var o = r("canceled_flag");
		var s = r("original_event");
		var a = Object.freeze({
			stopPropagation: Object.freeze({
				value: function() {
					var e = this[s];

					if ("function" == typeof e.stopPropagation) {
						e.stopPropagation();
					}
				},
				writable: true,
				configurable: true
			}),
			stopImmediatePropagation: Object.freeze({
				value: function() {
					this[i] = true;
					var e = this[s];

					if ("function" == typeof e.stopImmediatePropagation) {
						e.stopImmediatePropagation();
					}
				},
				writable: true,
				configurable: true
			}),
			preventDefault: Object.freeze({
				value: function() {
					if (this.cancelable === true) {
						this[o] = true;
					}

					var e = this[s];

					if ("function" == typeof e.preventDefault) {
						e.preventDefault();
					}
				},
				writable: true,
				configurable: true
			}),
			defaultPrevented: Object.freeze({
				get: function() {
					return this[o];
				},
				enumerable: true,
				configurable: true
			})
		});;
		t.STOP_IMMEDIATE_PROPAGATION_FLAG = i;

		t.createEventWrapper = function(e, t) {
			var n = "number" == typeof e.timeStamp ? e.timeStamp : Date.now();
			var r = {
				type: {
					value: e.type,
					enumerable: true
				},
				target: {
					value: t,
					enumerable: true
				},
				currentTarget: {
					value: t,
					enumerable: true
				},
				eventPhase: {
					value: 2,
					enumerable: true
				},
				bubbles: {
					value: Boolean(e.bubbles),
					enumerable: true
				},
				cancelable: {
					value: Boolean(e.cancelable),
					enumerable: true
				},
				timeStamp: {
					value: n,
					enumerable: true
				},
				isTrusted: {
					value: false,
					enumerable: true
				}
			};;
			r[i] = {
				value: false,
				writable: true
			};
			r[o] = {
				value: false,
				writable: true
			};
			r[s] = {
				value: e
			};

			if ("undefined" != typeof e.detail) {
				r.detail = {
					value: e.detail,
					enumerable: true
				};
			}

			return Object.create(Object.create(e, a), r);
		};

		;
	}, function(e, t) {
		function n(e) {
			return !!e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e);
		}

		function r(e) {
			return "function" == typeof e.readFloatLE && "function" == typeof e.slice && n(e.slice(0, 0));
		}

		e.exports = function(e) {
			return null != e && (n(e) || r(e) || !!e._isBuffer);
		};
	}, function(e, t, n) {
		! function(t) {
			var n = {};
			var r = {};;
			n.length = 0;

			n.getItem = function(e) {
				return r[e] || null;
			};

			n.setItem = function(e, t) {
				if ("undefined" == typeof t) {
					n.removeItem(e);
				} else {
					r.hasOwnProperty(e) || n.length++;
					r[e] = "" + t;;
				}
			};

			n.removeItem = function(e) {
				if (r.hasOwnProperty(e)) {
					delete r[e];
					n.length--;;
				}
			};

			n.key = function(e) {
				return Object.keys(r)[e] || null;
			};

			n.clear = function() {
				r = {};
				n.length = 0;;
			};

			e.exports = n;;
		}(this);
	}, function(e, t, n) {
		! function() {
			var t = n(48);
			var r = n(19).utf8;
			var i = n(53);
			var o = n(19).bin;

			var s = function(e, n) {
				if (e.constructor == String) {
					if (n && "binary" === n.encoding) {
						e = o.stringToBytes(e);
					} else {
						e = r.stringToBytes(e);
					}
				} else {
					if (i(e)) {
						e = Array.prototype.slice.call(e, 0);
					} else {
						Array.isArray(e) || (e = e.toString());
					}
				}

				for (var a = t.bytesToWords(e), u = 8 * e.length, c = 1732584193, l = -271733879, f = -1732584194, h =
						271733878, d = 0; d < a.length; d++) {
					a[d] = 16711935 & (a[d] << 8 | a[d] >>> 24) | 4278255360 & (a[d] << 24 | a[d] >>> 8);
				}

				a[u >>> 5] |= 128 << u % 32;
				a[(u + 64 >>> 9 << 4) + 14] = u;;

				for (var p = s._ff, _ = s._gg, v = s._hh, y = s._ii, d = 0; d < a.length; d += 16) {
					var m = c;
					var g = l;
					var b = f;
					var w = h;;
					c = p(c, l, f, h, a[d + 0], 7, -680876936);
					h = p(h, c, l, f, a[d + 1], 12, -389564586);
					f = p(f, h, c, l, a[d + 2], 17, 606105819);
					l = p(l, f, h, c, a[d + 3], 22, -1044525330);
					c = p(c, l, f, h, a[d + 4], 7, -176418897);
					h = p(h, c, l, f, a[d + 5], 12, 1200080426);
					f = p(f, h, c, l, a[d + 6], 17, -1473231341);
					l = p(l, f, h, c, a[d + 7], 22, -45705983);
					c = p(c, l, f, h, a[d + 8], 7, 1770035416);
					h = p(h, c, l, f, a[d + 9], 12, -1958414417);
					f = p(f, h, c, l, a[d + 10], 17, -42063);
					l = p(l, f, h, c, a[d + 11], 22, -1990404162);
					c = p(c, l, f, h, a[d + 12], 7, 1804603682);
					h = p(h, c, l, f, a[d + 13], 12, -40341101);
					f = p(f, h, c, l, a[d + 14], 17, -1502002290);
					l = p(l, f, h, c, a[d + 15], 22, 1236535329);
					c = _(c, l, f, h, a[d + 1], 5, -165796510);
					h = _(h, c, l, f, a[d + 6], 9, -1069501632);
					f = _(f, h, c, l, a[d + 11], 14, 643717713);
					l = _(l, f, h, c, a[d + 0], 20, -373897302);
					c = _(c, l, f, h, a[d + 5], 5, -701558691);
					h = _(h, c, l, f, a[d + 10], 9, 38016083);
					f = _(f, h, c, l, a[d + 15], 14, -660478335);
					l = _(l, f, h, c, a[d + 4], 20, -405537848);
					c = _(c, l, f, h, a[d + 9], 5, 568446438);
					h = _(h, c, l, f, a[d + 14], 9, -1019803690);
					f = _(f, h, c, l, a[d + 3], 14, -187363961);
					l = _(l, f, h, c, a[d + 8], 20, 1163531501);
					c = _(c, l, f, h, a[d + 13], 5, -1444681467);
					h = _(h, c, l, f, a[d + 2], 9, -51403784);
					f = _(f, h, c, l, a[d + 7], 14, 1735328473);
					l = _(l, f, h, c, a[d + 12], 20, -1926607734);
					c = v(c, l, f, h, a[d + 5], 4, -378558);
					h = v(h, c, l, f, a[d + 8], 11, -2022574463);
					f = v(f, h, c, l, a[d + 11], 16, 1839030562);
					l = v(l, f, h, c, a[d + 14], 23, -35309556);
					c = v(c, l, f, h, a[d + 1], 4, -1530992060);
					h = v(h, c, l, f, a[d + 4], 11, 1272893353);
					f = v(f, h, c, l, a[d + 7], 16, -155497632);
					l = v(l, f, h, c, a[d + 10], 23, -1094730640);
					c = v(c, l, f, h, a[d + 13], 4, 681279174);
					h = v(h, c, l, f, a[d + 0], 11, -358537222);
					f = v(f, h, c, l, a[d + 3], 16, -722521979);
					l = v(l, f, h, c, a[d + 6], 23, 76029189);
					c = v(c, l, f, h, a[d + 9], 4, -640364487);
					h = v(h, c, l, f, a[d + 12], 11, -421815835);
					f = v(f, h, c, l, a[d + 15], 16, 530742520);
					l = v(l, f, h, c, a[d + 2], 23, -995338651);
					c = y(c, l, f, h, a[d + 0], 6, -198630844);
					h = y(h, c, l, f, a[d + 7], 10, 1126891415);
					f = y(f, h, c, l, a[d + 14], 15, -1416354905);
					l = y(l, f, h, c, a[d + 5], 21, -57434055);
					c = y(c, l, f, h, a[d + 12], 6, 1700485571);
					h = y(h, c, l, f, a[d + 3], 10, -1894986606);
					f = y(f, h, c, l, a[d + 10], 15, -1051523);
					l = y(l, f, h, c, a[d + 1], 21, -2054922799);
					c = y(c, l, f, h, a[d + 8], 6, 1873313359);
					h = y(h, c, l, f, a[d + 15], 10, -30611744);
					f = y(f, h, c, l, a[d + 6], 15, -1560198380);
					l = y(l, f, h, c, a[d + 13], 21, 1309151649);
					c = y(c, l, f, h, a[d + 4], 6, -145523070);
					h = y(h, c, l, f, a[d + 11], 10, -1120210379);
					f = y(f, h, c, l, a[d + 2], 15, 718787259);
					l = y(l, f, h, c, a[d + 9], 21, -343485551);
					c = c + m >>> 0;
					l = l + g >>> 0;
					f = f + b >>> 0;
					h = h + w >>> 0;;
				}

				return t.endian([c, l, f, h]);
			};

			;

			s._ff = function(e, t, n, r, i, o, s) {
				var a = e + (t & n | ~t & r) + (i >>> 0) + s;
				return (a << o | a >>> 32 - o) + t;
			};

			s._gg = function(e, t, n, r, i, o, s) {
				var a = e + (t & r | n & ~r) + (i >>> 0) + s;
				return (a << o | a >>> 32 - o) + t;
			};

			s._hh = function(e, t, n, r, i, o, s) {
				var a = e + (t ^ n ^ r) + (i >>> 0) + s;
				return (a << o | a >>> 32 - o) + t;
			};

			s._ii = function(e, t, n, r, i, o, s) {
				var a = e + (n ^ (t | ~r)) + (i >>> 0) + s;
				return (a << o | a >>> 32 - o) + t;
			};

			s._blocksize = 16;
			s._digestsize = 16;

			e.exports = function(e, n) {
				if (void 0 === e || null === e) {
					throw new Error("Illegal argument " + e);
				}

				var r = t.wordsToBytes(s(e, n));
				return n && n.asBytes ? r : n && n.asString ? o.bytesToString(r) : t.bytesToHex(r);
			};

			;
		}();
	}, function(e, t) {
		function n(e) {
			e = String(e);

			if (!(e.length > 10000)) {
				var t =
					/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i
					.exec(e);

				if (t) {
					var n = parseFloat(t[1]);
					var r = (t[2] || "ms").toLowerCase();;

					switch (r) {
						case "years":
						case "year":
						case "yrs":
						case "yr":
						case "y":
							return n * l;

						case "days":
						case "day":
						case "d":
							return n * c;

						case "hours":
						case "hour":
						case "hrs":
						case "hr":
						case "h":
							return n * u;

						case "minutes":
						case "minute":
						case "mins":
						case "min":
						case "m":
							return n * a;

						case "seconds":
						case "second":
						case "secs":
						case "sec":
						case "s":
							return n * s;

						case "milliseconds":
						case "millisecond":
						case "msecs":
						case "msec":
						case "ms":
							return n;

						default:
							return;
					}
				}
			}
		}

		function r(e) {
			return e >= c ? Math.round(e / c) + "d" : e >= u ? Math.round(e / u) + "h" : e >= a ? Math.round(e / a) + "m" :
				e >= s ? Math.round(e / s) + "s" : e + "ms";
		}

		function i(e) {
			return o(e, c, "day") || o(e, u, "hour") || o(e, a, "minute") || o(e, s, "second") || e + " ms";
		}

		function o(e, t, n) {
			if (!(e < t)) {
				return e < 1.5 * t ? Math.floor(e / t) + " " + n : Math.ceil(e / t) + " " + n + "s";
			}
		}

		var s = 1000;
		var a = 60 * s;
		var u = 60 * a;
		var c = 24 * u;
		var l = 365.25 * c;;

		e.exports = function(e, t) {
			t = t || {};
			var o = typeof e;

			if ("string" === o && e.length > 0) {
				return n(e);
			}

			if ("number" === o && isNaN(e) === false) {
				return t.long ? i(e) : r(e);
			}

			throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(e));
		};
	}, function(e, t, n) {
		function r(e) {
			var t = i(e) ? Object.prototype.toString.call(e) : "";
			return "[object Function]" === t;
		}

		var i = n(12);
		e.exports = r;
	}, function(e, t, n) {
		function r(e) {
			if (e) {
				return i(e);
			}
		}

		function i(e) {
			for (var t in r.prototype) {
				e[t] = r.prototype[t];
			}

			return e;
		}

		var o = n(12);
		e.exports = r;

		r.prototype.clearTimeout = function() {
			this._timeout = 0;
			this._responseTimeout = 0;
			clearTimeout(this._timer);
			clearTimeout(this._responseTimeoutTimer);
			return this;
		};

		r.prototype.parse = function(e) {
			this._parser = e;
			return this;
		};

		r.prototype.responseType = function(e) {
			this._responseType = e;
			return this;
		};

		r.prototype.serialize = function(e) {
			this._serializer = e;
			return this;
		};

		r.prototype.timeout = function(e) {
			return e && "object" == typeof e ? ("undefined" != typeof e.deadline && (this._timeout = e.deadline),
				"undefined" != typeof e.response && (this._responseTimeout = e.response), this) : (this._timeout = e, this
				._responseTimeout = 0, this);
		};

		r.prototype.then = function(e, t) {
			if (!this._fullfilledPromise) {
				var that = this;

				if (this._endCalled) {
					console.warn(
						"Warning: superagent request was sent twice, because both .end() and .then() were called. Never call .end() if you use promises"
						);
				}

				this._fullfilledPromise = new Promise(function(e, t) {
					that.end(function(n, r) {
						if (n) {
							t(n);
						} else {
							e(r);
						}
					});
				});;
			}

			return this._fullfilledPromise.then(e, t);
		};

		r.prototype.catch = function(e) {
			return this.then(void 0, e);
		};

		r.prototype.use = function(e) {
			e(this);
			return this;
		};

		r.prototype.ok = function(e) {
			if ("function" != typeof e) {
				throw Error("Callback required");
			}

			this._okCallback = e;
			return this;
		};

		r.prototype._isResponseOK = function(e) {
			return !!e && (this._okCallback ? this._okCallback(e) : e.status >= 200 && e.status < 300);
		};

		r.prototype.get = function(e) {
			return this._header[e.toLowerCase()];
		};

		r.prototype.getHeader = r.prototype.get;

		r.prototype.set = function(e, t) {
			if (o(e)) {
				for (var n in e) {
					this.set(n, e[n]);
				}

				return this;
			}

			this._header[e.toLowerCase()] = t;
			this.header[e] = t;
			return this;
		};

		r.prototype.unset = function(e) {
			delete this._header[e.toLowerCase()];
			delete this.header[e];
			return this;
		};

		r.prototype.field = function(e, t) {
			if (null === e || void 0 === e) {
				throw new Error(".field(name, val) name can not be empty");
			}

			if (o(e)) {
				for (var n in e) {
					this.field(n, e[n]);
				}

				return this;
			}

			if (Array.isArray(t)) {
				for (var r in t) {
					this.field(e, t[r]);
				}

				return this;
			}

			if (null === t || void 0 === t) {
				throw new Error(".field(name, val) val can not be empty");
			}

			if ("boolean" == typeof t) {
				t = "" + t;
			}

			this._getFormData().append(e, t);

			return this;
		};

		r.prototype.abort = function() {
			return this._aborted ? this : (this._aborted = true, this.xhr && this.xhr.abort(), this.req && this.req.abort(),
				this.clearTimeout(), this.emit("abort"), this);
		};

		r.prototype.withCredentials = function() {
			this._withCredentials = true;
			return this;
		};

		r.prototype.redirects = function(e) {
			this._maxRedirects = e;
			return this;
		};

		r.prototype.toJSON = function() {
			return {
				method: this.method,
				url: this.url,
				data: this._data,
				headers: this._header
			};
		};

		r.prototype.send = function(e) {
			var t = o(e);
			var n = this._header["content-type"];;

			if (t && !this._data) {
				if (Array.isArray(e)) {
					this._data = [];
				} else {
					this._isHost(e) || (this._data = {});
				}
			} else {
				if (e && this._data && this._isHost(this._data)) {
					throw Error("Can't merge these send calls");
				}
			}

			if (t && o(this._data)) {
				for (var r in e) {
					this._data[r] = e[r];
				}
			} else {
				if ("string" == typeof e) {
					n || this.type("form");
					n = this._header["content-type"];

					if ("application/x-www-form-urlencoded" == n) {
						if (this._data) {
							this._data = this._data + "&" + e;
						} else {
							this._data = e;
						}
					} else {
						this._data = (this._data || "") + e;
					}

					;
				} else {
					this._data = e;
				}
			}

			return !t || this._isHost(e) ? this : (n || this.type("json"), this);
		};

		r.prototype.sortQuery = function(e) {
			this._sort = "undefined" == typeof e || e;
			return this;
		};

		r.prototype._timeoutError = function(e, t) {
			if (!this._aborted) {
				var n = new Error(e + t + "ms exceeded");
				n.timeout = t;
				n.code = "ECONNABORTED";
				this.timedout = true;
				this.abort();
				this.callback(n);;
			}
		};

		r.prototype._setTimeouts = function() {
			var that = this;

			if (this._timeout && !this._timer) {
				this._timer = setTimeout(function() {
					that._timeoutError("Timeout of ", that._timeout);
				}, this._timeout);
			}

			if (this._responseTimeout && !this._responseTimeoutTimer) {
				this._responseTimeoutTimer = setTimeout(function() {
					that._timeoutError("Response timeout of ", that._responseTimeout);
				}, this._responseTimeout);
			}

			;
		};

		;
	}, function(e, t, n) {
		function r(e) {
			if (e) {
				return i(e);
			}
		}

		function i(e) {
			for (var t in r.prototype) {
				e[t] = r.prototype[t];
			}

			return e;
		}

		var o = n(60);
		e.exports = r;

		r.prototype.get = function(e) {
			return this.header[e.toLowerCase()];
		};

		r.prototype._setHeaderProperties = function(e) {
			var t = e["content-type"] || "";
			this.type = o.type(t);
			var n = o.params(t);

			for (var r in n) {
				this[r] = n[r];
			}

			this.links = {};

			try {
				if (e.link) {
					this.links = o.parseLinks(e.link);
				}
			} catch (e) {}
		};

		r.prototype._setStatusProperties = function(e) {
			var t = e / 100 | 0;
			this.status = this.statusCode = e;
			this.statusType = t;
			this.info = 1 == t;
			this.ok = 2 == t;
			this.redirect = 3 == t;
			this.clientError = 4 == t;
			this.serverError = 5 == t;
			this.error = (4 == t || 5 == t) && this.toError();
			this.accepted = 202 == e;
			this.noContent = 204 == e;
			this.badRequest = 400 == e;
			this.unauthorized = 401 == e;
			this.notAcceptable = 406 == e;
			this.forbidden = 403 == e;
			this.notFound = 404 == e;;
		};

		;
	}, function(e, t) {
		t.type = function(e) {
			return e.split(/ *; */).shift();
		};

		t.params = function(e) {
			return e.split(/ *; */).reduce(function(e, t) {
				var n = t.split(/ *= */);
				var r = n.shift();
				var i = n.shift();;

				if (r && i) {
					e[r] = i;
				}

				return e;
			}, {});
		};

		t.parseLinks = function(e) {
			return e.split(/ *, */).reduce(function(e, t) {
				var n = t.split(/ *; */);
				var r = n[0].slice(1, -1);
				var i = n[1].split(/ *= */)[1].slice(1, -1);;
				return {};
			}, {});
		};

		t.cleanHeader = function(e, t) {
			delete e["content-type"];
			delete e["content-length"];
			delete e["transfer-encoding"];
			delete e.host;

			if (t) {
				delete e.cookie;
			}

			return e;
		};

		;
	}, function(e, t) {}, function(e, t, n) {
		"use strict";

		n(21);
		e.exports = n(22);;
	}]);
}); //# sourceMappingURL=av-weapp-min.js.map